open-design/apps/daemon/tests/app-version.test.ts
marco 5dd70b5016
Some checks failed
ci / Validate workspace (push) Successful in 12m32s
landing-page-ci / Validate landing page (push) Successful in 9m41s
landing-page-deploy / Deploy landing page (push) Failing after 5m23s
github-metrics / Generate repository metrics SVG (push) Failing after 2m3s
refresh-contributors-wall / Refresh contributors wall cache bust (push) Failing after 11s
Initial import: open-design source for helix-mind.ai distribution
This repository contains the open-design daemon CLI source code, built
and packaged at https://helix-mind.ai/cli/open-design/latest.tgz for use
by the HelixMind /design slash command.

Licenses: Apache-2.0 (root) + MIT (skills/*)
2026-05-06 20:50:24 +02:00

78 lines
2.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
APP_VERSION_FALLBACK,
isPackagedRuntime,
resolveAppVersionInfo,
} from '../src/app-version.js';
describe('app version helpers', () => {
it('resolves version info from package metadata', () => {
expect(resolveAppVersionInfo({
packageMetadata: { version: '1.2.3' },
env: {},
resourcesPath: undefined,
execPath: '/usr/local/bin/node',
platform: 'linux',
arch: 'x64',
})).toEqual({
version: '1.2.3',
channel: 'development',
packaged: false,
platform: 'linux',
arch: 'x64',
});
});
it('uses a safe fallback when package metadata is missing', () => {
expect(resolveAppVersionInfo({ packageMetadata: null, env: {} }).version).toBe(APP_VERSION_FALLBACK);
});
it('prefers packaged app version metadata from the environment', () => {
expect(resolveAppVersionInfo({
packageMetadata: { version: '0.3.0' },
env: { OD_APP_VERSION: '0.3.1-beta.1' },
resourcesPath: '/Applications/Open Design.app/Contents/Resources',
execPath: '/Applications/Open Design.app/Contents/Resources/open-design/bin/node',
platform: 'darwin',
arch: 'arm64',
})).toEqual({
version: '0.3.1-beta.1',
channel: 'beta',
packaged: true,
platform: 'darwin',
arch: 'arm64',
});
});
it('detects packaged runtimes without sidecar protocol knowledge', () => {
expect(isPackagedRuntime({ resourcesPath: '/Applications/Open Design.app/Contents/Resources' })).toBe(true);
expect(isPackagedRuntime({
execPath: '/Applications/Open Design.app/Contents/Resources/open-design/bin/node',
platform: 'darwin',
})).toBe(true);
expect(isPackagedRuntime({
execPath: 'C:\\Users\\Ada\\AppData\\Local\\Programs\\Open Design\\resources\\open-design\\bin\\node.exe',
platform: 'win32',
})).toBe(true);
expect(isPackagedRuntime({
execPath: '/opt/Open Design/resources/open-design/bin/node',
platform: 'linux',
})).toBe(true);
expect(isPackagedRuntime({ execPath: '/usr/local/bin/node', platform: 'linux' })).toBe(false);
});
it('honors an explicit release channel', () => {
expect(resolveAppVersionInfo({
packageMetadata: { version: '1.2.3' },
env: { OD_RELEASE_CHANNEL: 'beta' },
}).channel).toBe('beta');
});
it('infers prerelease channel from semver metadata', () => {
expect(resolveAppVersionInfo({
packageMetadata: { version: '0.1.0-beta.6' },
env: {},
}).channel).toBe('beta');
});
});