diff --git a/test/prebuild/environment.test.js b/test/prebuild/environment.test.js new file mode 100644 index 0000000..e3be839 --- /dev/null +++ b/test/prebuild/environment.test.js @@ -0,0 +1,24 @@ +import { describe, expect, it } from 'vitest' + +import { + isBrowserContext, + isDarwin, + isLinux +} from '~/helpers/environment.js' + +describe( 'environment helpers', () => { + it( 'does not treat Node 22 navigator as a browser runtime', () => { + expect( isBrowserContext() ).toBe( false ) + }) + + it( 'detects darwin directly from process.platform', () => { + expect( isDarwin() ).toBe( process.platform === 'darwin' ) + }) + + it( 'detects linux-like runtimes directly from process.platform', () => { + expect( isLinux() ).toBe([ + 'linux', + 'openbsd' + ].includes( process.platform ) ) + }) +}) diff --git a/test/prebuild/stork-executable.test.js b/test/prebuild/stork-executable.test.js new file mode 100644 index 0000000..3a44c1e --- /dev/null +++ b/test/prebuild/stork-executable.test.js @@ -0,0 +1,29 @@ +import { describe, expect, it } from 'vitest' + +import { + getStorkExecutableTarget, + getStorkExecutableDownloadUrl +} from '~/helpers/stork/executable.js' + +describe( 'stork executable selection', () => { + it( 'uses the Ubuntu 22.04 binary for Linux builds', () => { + expect( getStorkExecutableTarget({ + platform: 'linux', + arch: 'x64' + }) ).toBe( 'stork-ubuntu-22-04' ) + }) + + it( 'uses the Apple Silicon macOS binary on arm64 Macs', () => { + expect( getStorkExecutableTarget({ + platform: 'darwin', + arch: 'arm64' + }) ).toBe( 'stork-macos-13-arm' ) + }) + + it( 'builds the download URL from the selected target', () => { + expect( getStorkExecutableDownloadUrl({ + platform: 'linux', + arch: 'x64' + }) ).toContain( '/stork-ubuntu-22-04' ) + }) +})