{ pkgs, protocol }: let base = ''quixos-lock version 1 { quixos source { repository "https://example.test/quixos.git"; commit "1111111111111111111111111111111111111111"; } }''; fixture = extra: lock: pkgs.runCommand "qx-lock-source-fixture" { } '' mkdir -p "$out/nested" printf '%s' ${pkgs.lib.escapeShellArg lock} > "$out/quixos.lock" printf '%s' ${pkgs.lib.escapeShellArg extra} > "$out/implementation.ts" printf '%s' 'quixos-lock fragment version 1 {}' > "$out/nested/dependencies.txt" ''; first = fixture "first implementation" base; edited = fixture "edited implementation" base; changed = fixture "first implementation" ( builtins.replaceStrings [ "1111111111111111111111111111111111111111" ] [ "2222222222222222222222222222222222222222" ] base ); fragments = fixture "first implementation" ( builtins.replaceStrings [ "quixos source" ] [ ''import "nested/dependencies.txt"; quixos source'' ] base ); conservative = fixture "first implementation" (base + "\n// import in a comment\n"); slice = source: import ./lock-source.nix { inherit source; }; parse = source: pkgs.runCommand "qx-source-lock.json" { } '' ${protocol}/bin/quixos-lock-check ${slice source}/quixos.lock > "$out" ''; in assert slice first == slice edited; assert (parse first).drvPath == (parse edited).drvPath; assert slice first != slice changed; pkgs.runCommand "qx-lock-source-check" { } '' ${protocol}/bin/quixos-lock-check ${slice first}/quixos.lock > first.json ${protocol}/bin/quixos-lock-check ${slice edited}/quixos.lock > edited.json cmp first.json edited.json ${protocol}/bin/quixos-lock-check ${slice conservative}/quixos.lock > comment.json cmp first.json comment.json ${protocol}/bin/quixos-lock-check ${slice fragments}/quixos.lock > "$out" ''