28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import { readFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const appRoot = resolve(fileURLToPath(new URL('..', import.meta.url)));
|
|
const overlay = JSON.parse(
|
|
readFileSync(resolve(appRoot, 'src-tauri/tauri.macos-mlx.conf.json'), 'utf8'),
|
|
);
|
|
const buildScript = readFileSync(resolve(appRoot, 'scripts/build-mac.sh'), 'utf8');
|
|
|
|
assert.equal(overlay.build.beforeBundleCommand, 'node scripts/stage-macos-mlx-metallib.mjs');
|
|
assert.equal(
|
|
overlay.bundle.macOS.files['Resources/mlx.metallib'],
|
|
'target/release/openless-mlx/mlx.metallib',
|
|
);
|
|
assert.equal(overlay.bundle.macOS.files['MacOS/mlx.metallib'], undefined);
|
|
assert.match(buildScript, /arm64\)[\s\S]*tauri\.macos-mlx\.conf\.json/);
|
|
assert.doesNotMatch(buildScript, /--bundles app/);
|
|
assert.doesNotMatch(buildScript, /codesign --force/);
|
|
assert.doesNotMatch(buildScript, /hdiutil create/);
|
|
assert.match(buildScript, /OpenLess\.app\.tar\.gz/);
|
|
assert.match(buildScript, /stapler validate/);
|
|
assert.match(buildScript, /Contents\/Resources\/mlx\.metallib/);
|
|
assert.match(buildScript, /Contents\/MacOS\/mlx\.metallib/);
|
|
|
|
console.log('macOS MLX bundle contract tests passed');
|