import assert from 'node:assert/strict'; import { test } from 'node:test'; import { buildTauriBuildArguments } from './build-release.mjs'; import { withDefaultCargoFeatures } from './cargo-features.mjs'; test('Windows release includes the same editor feature as development', () => { assert.deepEqual( buildTauriBuildArguments([], 'x86_64-pc-windows-msvc', 'win32'), [ 'build', '--features=cocos-editor-execute', '--target', 'x86_64-pc-windows-msvc', ], ); assert.deepEqual( buildTauriBuildArguments( ['--no-bundle'], 'x86_64-pc-windows-msvc', 'linux', ), ['build', '--no-bundle'], ); assert.deepEqual( buildTauriBuildArguments(['--target=aarch64-apple-darwin']), ['build', '--target=aarch64-apple-darwin'], ); }); test('explicit Cargo features override defaults in every supported spelling', () => { for (const args of [ ['--features', 'custom'], ['--features=custom'], ['-f', 'custom'], ['-fcustom'], ]) { assert.deepEqual( withDefaultCargoFeatures(args, ['cocos-editor-execute']), args, ); } assert.deepEqual( withDefaultCargoFeatures( ['--', '--features=app'], ['cocos-editor-execute'], ), ['--features=cocos-editor-execute', '--', '--features=app'], ); });