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