Skip to content

Commit d44d252

Browse files
committed
Expand VS Code integration test assertions
- Add activation event verification - Add configuration schema type and default validation - Add extension license and repository metadata checks - Verify extension stays active throughout test lifecycle Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
1 parent 95ddf6d commit d44d252

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

test/suite/index.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,36 @@ export async function run(): Promise<void> {
5555
const properties = configSchema.properties as Record<string, unknown>;
5656
assert.ok(properties["patchloom.path"], "should contribute patchloom.path setting");
5757
assert.ok(properties["patchloom.showStatusBar"], "should contribute patchloom.showStatusBar setting");
58+
59+
// Activation events include onStartupFinished
60+
const activationEvents = packageJson.activationEvents as string[];
61+
assert.ok(activationEvents.includes("onStartupFinished"),
62+
"should activate on startup finished");
63+
64+
// All contributed commands have corresponding activation events
65+
for (const cmd of EXPECTED_COMMANDS) {
66+
assert.ok(
67+
activationEvents.includes("onStartupFinished") || activationEvents.includes(`onCommand:${cmd}`),
68+
`command ${cmd} should be activatable`
69+
);
70+
}
71+
72+
// Extension remains active throughout test lifecycle
73+
assert.ok(extension.isActive, "extension should still be active after assertions");
74+
75+
// Configuration type validation
76+
const pathSchema = properties["patchloom.path"] as Record<string, unknown>;
77+
assert.equal(pathSchema.type, "string", "patchloom.path should be a string type");
78+
assert.equal(pathSchema.default, "", "patchloom.path default should be empty");
79+
80+
const statusBarSchema = properties["patchloom.showStatusBar"] as Record<string, unknown>;
81+
assert.equal(statusBarSchema.type, "boolean", "patchloom.showStatusBar should be boolean type");
82+
assert.equal(statusBarSchema.default, true, "patchloom.showStatusBar default should be true");
83+
84+
// Extension has required license and repo metadata
85+
assert.equal(packageJson.license, "MIT");
86+
assert.ok(typeof (packageJson.repository as Record<string, unknown>).url === "string",
87+
"should have a repository URL");
88+
assert.ok(typeof packageJson.description === "string" && (packageJson.description as string).length > 0,
89+
"should have a non-empty description");
5890
}

0 commit comments

Comments
 (0)