Skip to content

Commit 3b69d8f

Browse files
authored
E2E test: disable pyrefly for test runs (#10830)
Turn off Pyrefly during test suite. ### QA Notes @:web
1 parent 6981040 commit 3b69d8f

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

test/e2e/fixtures/settings.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,9 @@
88
"positron.importSettings.enable": false,
99
"positron.assistant.enable": true,
1010
"positron.assistant.testModels": true,
11-
"posit.workbench.showWorkbenchFlaskHint": false
11+
"posit.workbench.showWorkbenchFlaskHint": false,
12+
"extensions.allowed": {
13+
"meta.pyrefly": false,
14+
"*": true
15+
}
1216
}

test/e2e/tests/extensions/bootstrap-extensions.test.ts

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ test.use({
1111
suiteId: __filename
1212
});
1313

14+
const OPTIONAL_MISSING_EXTENSIONS = new Set<string>([
15+
'meta.pyrefly',
16+
]);
17+
1418

1519
test.describe('Bootstrap Extensions', {
1620
tag: [tags.EXTENSIONS, tags.WEB, tags.WIN, tags.WORKBENCH],
@@ -111,9 +115,18 @@ async function waitForExtensions(
111115
continue;
112116
}
113117

114-
const installedVersion = installed.get(ext.shortName);
118+
// Prefer fullName (package name) but fall back to shortName
119+
const installedVersion =
120+
installed.get(ext.fullName) ??
121+
installed.get(ext.shortName);
122+
115123
if (!installedVersion) {
116-
console.log(`❌ ${ext.fullName} not yet installed`);
124+
if (OPTIONAL_MISSING_EXTENSIONS.has(ext.fullName)) {
125+
console.log(`⚠️ Optional bootstrap extension ${ext.fullName} is not installed; allowing test to continue.`);
126+
missing.delete(ext.fullName);
127+
} else {
128+
console.log(`❌ ${ext.fullName} not yet installed`);
129+
}
117130
} else if (installedVersion !== ext.version) {
118131
console.log(`⚠️ ${ext.fullName} installed with version ${installedVersion}, currently ${ext.version} in product.json`);
119132
missing.delete(ext.fullName);
@@ -139,19 +152,16 @@ async function waitForExtensions(
139152
await sleep(1000);
140153
const installed = await getInstalledExtensions(extensionsPath, runDockerCommand);
141154

142-
// Re-evaluate each previously mismatched extension
143-
for (const ext of [...mismatched]) {
144-
const installedVersion = installed.get(ext.split('@')[0] /* if your fullName is like 'short@scope' adjust accordingly */)
145-
?? installed.get(extensions.find(e => e.fullName === ext)?.shortName ?? '');
146-
147-
// Find the expected version for this ext
148-
const expected = extensions.find(e => e.fullName === ext)?.version;
155+
for (const extFullName of [...mismatched]) {
156+
const extMeta = extensions.find(e => e.fullName === extFullName);
157+
const installedVersion =
158+
(extMeta && (installed.get(extMeta.fullName) ?? installed.get(extMeta.shortName))) ||
159+
undefined;
160+
const expected = extMeta?.version;
149161

150162
if (installedVersion && expected && installedVersion === expected) {
151-
console.log(`✅ Resolved: ${ext} now matches (${installedVersion})`);
152-
mismatched.delete(ext);
153-
} else {
154-
// Keep it in the set; optional: log occasionally to avoid spam
163+
console.log(`✅ Resolved: ${extFullName} now matches (${installedVersion})`);
164+
mismatched.delete(extFullName);
155165
}
156166
}
157167
}

0 commit comments

Comments
 (0)