1import ./make-test-python.nix ({ lib, pkgs, ... }:
2let
3 port = 5000;
4 scanPath = "/var/lib/legit";
5in
6{
7 name = "legit-web";
8 meta.maintainers = [ lib.maintainers.ratsclub ];
9
10 nodes = {
11 server = { config, pkgs, ... }: {
12 services.legit = {
13 enable = true;
14 settings = {
15 server.port = 5000;
16 repo = { inherit scanPath; };
17 };
18 };
19
20 environment.systemPackages = [ pkgs.git ];
21 };
22 };
23
24 testScript = { nodes, ... }:
25 let
26 strPort = builtins.toString port;
27 in
28 ''
29 start_all()
30
31 server.wait_for_unit("network.target")
32 server.wait_for_unit("legit.service")
33
34 server.wait_until_succeeds(
35 "curl -f http://localhost:${strPort}"
36 )
37
38 server.succeed("${pkgs.writeShellScript "setup-legit-test-repo" ''
39 set -e
40 git init --bare -b master ${scanPath}/some-repo
41 git init -b master reference
42 cd reference
43 git remote add origin ${scanPath}/some-repo
44 date > date.txt
45 git add date.txt
46 git -c user.name=test -c user.email=test@localhost commit -m 'add date'
47 git push -u origin master
48 ''}")
49
50 server.wait_until_succeeds(
51 "curl -f http://localhost:${strPort}/some-repo"
52 )
53 '';
54})