Adds an invoiceninja-nixos flake input and two things built from it: - nixosConfigurations.invoiceninja-test-nginx/-caddy: manual test VMs, re-exported as-is from that repo rather than redefined here — same principle as this crate being a client of the SDK, not a second implementation of it. - checks.invoiceninja-cli: an automated nixosTest (tests/, adapted from invoiceninja-nixos's own test scaffolding) that boots a real Invoice Ninja instance and runs the actual invoiceninja-cli binary against it - create/list/get/update/invoice/payment/delete across clients, invoices, and payments - rather than raw curl. tests/common.nix's module import had to change from a relative ../nixos-module/invoiceninja.nix (which doesn't exist here) to a parameter threaded from the flake input's nixosModules.invoiceninja. Building the VM pulls from the invoiceninja-nixos cachix cache via a nixConfig block, mirroring that repo's own. Also fixes a wrong assumption the first version of this test's final assertion made, caught by actually running it against a real server: `clients list` with no `--status` does not exclude soft-deleted records - confirmed empirically (Invoice Ninja returns everything regardless of is_deleted unless status=active is passed explicitly). Corrected the test to check is_deleted via `clients get` instead, and fixed the misleadingly-incomplete --status doc comment in cli.rs that had the same wrong assumption baked in. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
250 lines
6.7 KiB
JSON
250 lines
6.7 KiB
JSON
{
|
|
"nodes": {
|
|
"flake-compat": {
|
|
"flake": false,
|
|
"locked": {
|
|
"lastModified": 1767039857,
|
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
|
"owner": "NixOS",
|
|
"repo": "flake-compat",
|
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"repo": "flake-compat",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-parts": {
|
|
"inputs": {
|
|
"nixpkgs-lib": [
|
|
"invoiceninja-nixos",
|
|
"nix",
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1782949081,
|
|
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
|
"owner": "hercules-ci",
|
|
"repo": "flake-parts",
|
|
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "hercules-ci",
|
|
"repo": "flake-parts",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-utils": {
|
|
"inputs": {
|
|
"systems": "systems"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1791914995,
|
|
"narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=",
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"git-hooks-nix": {
|
|
"inputs": {
|
|
"flake-compat": [
|
|
"invoiceninja-nixos",
|
|
"nix"
|
|
],
|
|
"nixpkgs": [
|
|
"invoiceninja-nixos",
|
|
"nix",
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1783008725,
|
|
"narHash": "sha256-jGiy6+sxjNWXSjp25uoJuNfyH9zBK1PEDY0lVoL4ibQ=",
|
|
"owner": "cachix",
|
|
"repo": "git-hooks.nix",
|
|
"rev": "bca82caa46d5ec0f5d422c61fb1e30bc51313cbe",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "cachix",
|
|
"repo": "git-hooks.nix",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"invoiceninja-nixos": {
|
|
"inputs": {
|
|
"nix": "nix",
|
|
"nixpkgs": "nixpkgs_2"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1792704906,
|
|
"narHash": "sha256-RnfRh7mVgwqiTA+lbBCq35SllrINUu1I+klov26Aiq0=",
|
|
"ref": "refs/heads/master",
|
|
"rev": "badcdd25666d5a59d221fc4331f8691ce3167755",
|
|
"revCount": 71,
|
|
"type": "git",
|
|
"url": "ssh://gitea@gitea.awkawb.cloud/awkawb/invoiceninja-nixos.git"
|
|
},
|
|
"original": {
|
|
"type": "git",
|
|
"url": "ssh://gitea@gitea.awkawb.cloud/awkawb/invoiceninja-nixos.git"
|
|
}
|
|
},
|
|
"nix": {
|
|
"inputs": {
|
|
"flake-compat": "flake-compat",
|
|
"flake-parts": "flake-parts",
|
|
"git-hooks-nix": "git-hooks-nix",
|
|
"nixpkgs": "nixpkgs",
|
|
"nixpkgs-23-11": "nixpkgs-23-11",
|
|
"nixpkgs-regression": "nixpkgs-regression"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1786478010,
|
|
"narHash": "sha256-/9wXGp+aLObxqQuOGhDOnbdV0QCRDHH8uSh/4URKVAg=",
|
|
"owner": "NixOS",
|
|
"repo": "nix",
|
|
"rev": "24b65e35d9d4c9d64c1bd5844a35f2a779356d63",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"id": "nix",
|
|
"type": "indirect"
|
|
}
|
|
},
|
|
"nixpkgs": {
|
|
"locked": {
|
|
"lastModified": 1783148766,
|
|
"narHash": "sha256-H9+N+GFtsbVC8ZniHliChM7ndizxtqVZs6bnGOLM3WQ=",
|
|
"rev": "a50de1b7d8a586adc18d2395c19de7d6058e6030",
|
|
"type": "tarball",
|
|
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.4193.a50de1b7d8a5/nixexprs.tar.xz"
|
|
},
|
|
"original": {
|
|
"type": "tarball",
|
|
"url": "https://channels.nixos.org/nixos-26.05/nixexprs.tar.xz"
|
|
}
|
|
},
|
|
"nixpkgs-23-11": {
|
|
"locked": {
|
|
"lastModified": 1717159533,
|
|
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs-regression": {
|
|
"locked": {
|
|
"lastModified": 1643052045,
|
|
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs_2": {
|
|
"locked": {
|
|
"lastModified": 1786430034,
|
|
"narHash": "sha256-Vux08kA5PICwS2sViCMfwVLAHNoH8TkKAeBo25LjpMI=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "70cc4559b10a6062b05ff1af17e0add065ccaed9",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-26.05",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs_3": {
|
|
"locked": {
|
|
"lastModified": 1792773339,
|
|
"narHash": "sha256-rZLrzrC6i+jnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "3ec636362e1816bc2f0888fa0fa2c69f1bc9e504",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-unstable",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"root": {
|
|
"inputs": {
|
|
"flake-utils": "flake-utils",
|
|
"invoiceninja-nixos": "invoiceninja-nixos",
|
|
"nixpkgs": "nixpkgs_3",
|
|
"rust-overlay": "rust-overlay"
|
|
}
|
|
},
|
|
"rust-overlay": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1792913333,
|
|
"narHash": "sha256-wjoZGhxH/Yr+OsFRpNyV9DpMGQIdNEjjAOinfzQvadk=",
|
|
"owner": "oxalica",
|
|
"repo": "rust-overlay",
|
|
"rev": "fad80eb74614f7dc37c1c83df8caae64361eda22",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "oxalica",
|
|
"repo": "rust-overlay",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"systems": {
|
|
"locked": {
|
|
"lastModified": 1681028828,
|
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"type": "github"
|
|
}
|
|
}
|
|
},
|
|
"root": "root",
|
|
"version": 7
|
|
}
|