Files
buzz/desktop/test-loader-hooks.mjs
Taylor Ho 7194016d48 fix: regenerate E2E screenshots for 2-tier feature system
- Rewrote screenshot-feature-flags.ts: removed stale 'unstable' tier
  references (relay-members, identity-archive), updated close button
  selector to settings-back-to-app
- Deleted all old screenshots + feature-flags-tour/ artifacts
- Regenerated 13 fresh screenshots matching current UI
- Added Experiments nav group to SettingsView (was defined but missing
  from settingsNavGroups)
- Registered test in playwright.config.ts smoke project

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
2026-06-08 13:02:58 -07:00

37 lines
1.2 KiB
JavaScript

import { fileURLToPath } from "node:url";
import path from "node:path";
const srcRoot = path.resolve(
path.dirname(fileURLToPath(import.meta.url)),
"src",
);
const repoRoot = path.resolve(
path.dirname(fileURLToPath(import.meta.url)),
"..",
);
export function resolve(specifier, context, nextResolve) {
if (specifier === "@features-manifest") {
const resolved = path.join(repoRoot, "features.json");
return nextResolve(resolved, context);
}
if (specifier.startsWith("@/")) {
const resolved = `${srcRoot}/${specifier.slice(2)}.ts`;
return nextResolve(resolved, context);
}
// Resolve extensionless relative TS imports (e.g. `./parseImeta`) — the app's
// bundler adds the extension, but node's ESM resolver does not. Without this,
// any .ts that relative-imports a sibling .ts can't be imported from a test,
// which previously forced stale inlined copies of the source under test.
if (
(specifier.startsWith("./") || specifier.startsWith("../")) &&
!path.extname(specifier) &&
context.parentURL
) {
const resolved = new URL(`${specifier}.ts`, context.parentURL).href;
return nextResolve(resolved, context);
}
return nextResolve(specifier, context);
}