fix(companion): make reference-app exports reproducible by default
No diagram change needed: this change only makes generated reference-app timestamps deterministic and adds an override flag.
This commit is contained in:
@@ -8,18 +8,23 @@ describe('generateReferenceCompanionApps', () => {
|
||||
it('writes macos/ios/android reference app templates', async () => {
|
||||
const tempDir = await mkdtemp(join(tmpdir(), 'flynn-reference-apps-'));
|
||||
const outputDir = join(tempDir, 'apps');
|
||||
const generatedAt = new Date('2026-02-27T12:34:56.000Z');
|
||||
const result = await generateReferenceCompanionApps({
|
||||
outputDir,
|
||||
gatewayUrl: 'ws://127.0.0.1:18800',
|
||||
generatedAt: new Date('2026-02-27T00:00:00.000Z'),
|
||||
generatedAt,
|
||||
});
|
||||
|
||||
expect(result.generated.map((entry) => entry.platform)).toEqual(['macos', 'ios', 'android']);
|
||||
const macosTemplate = await readFile(`${outputDir}/macos/MenuBarCompanion.swift`, 'utf8');
|
||||
const macosAppMain = await readFile(`${outputDir}/macos-app/Sources/FlynnCompanionMenuBar/main.swift`, 'utf8');
|
||||
const iosBootstrapRaw = await readFile(`${outputDir}/ios/companion.bootstrap.json`, 'utf8');
|
||||
const macosAppBootstrapRaw = await readFile(`${outputDir}/macos-app/Sources/FlynnCompanionMenuBar/Resources/companion.bootstrap.json`, 'utf8');
|
||||
const iosTemplate = await readFile(`${outputDir}/ios/CompanionBootstrap.swift`, 'utf8');
|
||||
const androidTemplate = await readFile(`${outputDir}/android/CompanionBootstrap.kt`, 'utf8');
|
||||
const rootReadme = await readFile(`${outputDir}/README.md`, 'utf8');
|
||||
const iosBootstrap = JSON.parse(iosBootstrapRaw) as { generatedAt: string };
|
||||
const macosAppBootstrap = JSON.parse(macosAppBootstrapRaw) as { generatedAt: string };
|
||||
|
||||
expect(macosTemplate).toContain('launchFlynnCompanion');
|
||||
expect(macosAppMain).toContain('NSStatusBar.system.statusItem');
|
||||
@@ -28,6 +33,8 @@ describe('generateReferenceCompanionApps', () => {
|
||||
expect(rootReadme).toContain('Companion Reference Apps');
|
||||
expect(result.macosMenuBarAppDir).toBe(`${outputDir}/macos-app`);
|
||||
expect(result.macosMenuBarAppFiles.length).toBeGreaterThan(0);
|
||||
expect(iosBootstrap.generatedAt).toBe(generatedAt.toISOString());
|
||||
expect(macosAppBootstrap.generatedAt).toBe(generatedAt.toISOString());
|
||||
|
||||
await rm(tempDir, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user