Skip to content

Commit b8e6362

Browse files
committed
Write test case for reading members with tabs using SQL
Signed-off-by: worksofliam <[email protected]>
1 parent 08473ad commit b8e6362

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

src/filesystems/qsys/QSysFs.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,13 @@ export class QSysFS implements vscode.FileSystemProvider {
7777
}
7878

7979
stat(uri: vscode.Uri): vscode.FileStat {
80+
let type = uri.path.split(`/`).length > 3 ? vscode.FileType.File : vscode.FileType.Directory;
81+
8082
return {
8183
ctime: 0,
8284
mtime: 0,
8385
size: 0,
84-
type: vscode.FileType.File,
86+
type,
8587
permissions: getFilePermission(uri)
8688
}
8789
}

src/testing/content.ts

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import assert from "assert";
22
import tmp from 'tmp';
3-
import util from 'util';
3+
import util, { TextDecoder } from 'util';
44
import { Uri, workspace } from "vscode";
55
import { TestSuite } from ".";
66
import { Tools } from "../api/Tools";
77
import { instance } from "../instantiate";
88
import { CommandResult } from "../typings";
9+
import { getMemberUri } from "../filesystems/qsys/QSysFs";
910

1011
export const ContentSuite: TestSuite = {
1112
name: `Content API tests`,
@@ -594,5 +595,37 @@ export const ContentSuite: TestSuite = {
594595
assert.deepStrictEqual(resultB.OBJTEXT, "Code for i test");
595596
}
596597
},
598+
{
599+
name: `Write tab to member using SQL`, test: async () => {
600+
const lines = [
601+
`if (a) {`,
602+
`\tcoolstuff();\t`,
603+
`}`
604+
].join(`\n`);
605+
606+
const connection = instance.getConnection();
607+
const config = instance.getConfig()!;
608+
609+
assert.ok(config.enableSourceDates, `Source dates must be enabled for this test.`);
610+
611+
const tempLib = config!.tempLibrary;
612+
613+
await connection!.runCommand({ command: `CRTSRCPF FILE(${tempLib}/TABTEST) RCDLEN(112)`, noLibList: true });
614+
await connection!.runCommand({ command: `ADDPFM FILE(${tempLib}/TABTEST) MBR(THEBADONE) SRCTYPE(HELLO)` });
615+
616+
const theBadOneUri = getMemberUri({library: tempLib, file: `TABTEST`, name: `THEBADONE`, extension: `HELLO`});
617+
618+
// We have to read it first to create the alias!
619+
await workspace.fs.readFile(theBadOneUri);
620+
621+
await workspace.fs.writeFile(theBadOneUri, Buffer.from(lines, `utf8`));
622+
623+
const memberContentBuf = await workspace.fs.readFile(theBadOneUri);
624+
const fileContent = new TextDecoder().decode(memberContentBuf)
625+
626+
assert.strictEqual(fileContent, lines);
627+
628+
}
629+
}
597630
]
598631
};

0 commit comments

Comments
 (0)