Retire staged Yarn dependencies during Nix installation (#473)
This commit is contained in:
parent
43fcf6b27a
commit
a962586381
@@ -0,0 +1,24 @@
|
||||
{ pkgs }:
|
||||
let
|
||||
dependencies = import ./yarn-dependencies.nix {
|
||||
inherit pkgs;
|
||||
src = ./test/yarn-dependencies;
|
||||
};
|
||||
in
|
||||
pkgs.runCommand "quixos-yarn-dependencies-check" { nativeBuildInputs = [ pkgs.nodejs_24 ]; } ''
|
||||
node - ${dependencies} <<'JS'
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const {execFileSync} = require('node:child_process');
|
||||
const root = process.argv[2];
|
||||
assert.deepEqual(require(path.join(root, 'fixture')), {value: 'retained dependency'});
|
||||
assert.deepEqual(require(path.join(root, 'alias')), {value: 'retained dependency'});
|
||||
assert.equal(fs.readlinkSync(path.join(root, 'alias')), 'fixture');
|
||||
assert.equal(fs.readlinkSync(path.join(root, '.bin/fixture')), '../fixture/cli.cjs');
|
||||
assert.equal(execFileSync(path.join(root, '.bin/fixture'), {encoding: 'utf8'}), 'linked executable\n');
|
||||
assert.equal(fs.readFileSync(path.join(root, '.fixture-data'), 'utf8'), 'hidden dependency data\n');
|
||||
assert.equal(fs.existsSync(path.join(root, '.yarn-state.yml')), false);
|
||||
JS
|
||||
touch "$out"
|
||||
''
|
||||
Reference in New Issue
Block a user