run-smoke-tests — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited run-smoke-tests (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Run smoke tests to verify the extension loads and basic functionality works in a real VS Code environment.
| Action | Command |
|---|---|
| Run all smoke tests | npm run compile && npm run compile-tests && npm run smoke-test |
| Run specific test | npm run smoke-test -- --grep "Extension activates" |
| Debug in VS Code | Debug panel → "Smoke Tests" → F5 |
Unlike unit tests (which mock VS Code), smoke tests run inside a real VS Code instance:
npm run smoke-test uses @vscode/test-cli.vscode-test/)This is why smoke tests are slower (~10-60s) but catch real integration issues.
npm run compile && npm run compile-tests && npm run smoke-testPass: 4 passing (2s) → Extension works, proceed.
Fail: See error message and check Debugging section.
To run a specific test instead of the whole suite:
# By test name (grep pattern)
npm run smoke-test -- --grep "Extension activates"
# Or temporarily add .only in code:
test.only('Extension activates without errors', ...)| Error | Cause | Fix |
|---|---|---|
Extension not installed | Build failed or ID mismatch | Run npm run compile, check extension ID |
Extension did not become active | Error in activate() | Debug with F5, check Debug Console |
Command not registered | Missing from package.json | Add to contributes.commands |
Timeout exceeded | Slow startup or infinite loop | Increase timeout or check for blocking code |
For detailed debugging, use VS Code: Debug panel → "Smoke Tests" → F5
Create a new file in src/test/smoke/ with the naming convention *.smoke.test.ts:
import * as assert from 'assert';
import * as vscode from 'vscode';
import { waitForCondition } from '../testUtils';
import { ENVS_EXTENSION_ID } from '../constants';
suite('Smoke: [Feature Name]', function () {
this.timeout(60_000);
test('[Test description]', async function () {
// Arrange
const extension = vscode.extensions.getExtension(ENVS_EXTENSION_ID);
assert.ok(extension, 'Extension not found');
// Ensure extension is active
if (!extension.isActive) {
await extension.activate();
}
// Act
const result = await someOperation();
// Assert
assert.strictEqual(result, expected, 'Description of what went wrong');
});
});Key patterns:
waitForCondition() instead of sleep() for async assertionsthis.timeout(60_000))| File | Purpose |
|---|---|
src/test/smoke/activation.smoke.test.ts | Extension activation tests |
src/test/smoke/index.ts | Test runner entry point |
src/test/testUtils.ts | Utilities (waitForCondition, etc.) |
npm run compile (webpack) before tests run. The test runner uses dist/extension.js which is only created by webpack, not by npm run compile-tests (tsc)npm run compile before tests.vscode-test/)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.