at master 1.3 kB view raw
1{ 2 config, 3 pkgs, 4 lib, 5 ... 6}: 7{ 8 name = "ringboard"; 9 meta = { inherit (pkgs.ringboard.meta) maintainers; }; 10 11 nodes.machine = { 12 imports = [ 13 ./common/user-account.nix 14 ./common/x11.nix 15 ]; 16 17 test-support.displayManager.auto.user = "alice"; 18 19 services.xserver.displayManager.sessionCommands = '' 20 '${lib.getExe pkgs.gedit}' & 21 ''; 22 23 services.ringboard.x11.enable = true; 24 }; 25 26 testScript = 27 { nodes, ... }: 28 let 29 inherit (nodes.machine.test-support.displayManager.auto) user; 30 in 31 '' 32 @polling_condition 33 def gedit_running(): 34 machine.succeed("pgrep gedit") 35 36 with subtest("Wait for service startup"): 37 machine.wait_for_unit("graphical.target") 38 machine.wait_for_unit("ringboard-server.service", "${user}") 39 machine.wait_for_unit("ringboard-listener.service", "${user}") 40 41 with subtest("Ensure clipboard is monitored"): 42 with gedit_running: # type: ignore[union-attr] 43 machine.send_chars("Hello world!") 44 machine.send_key("ctrl-a") 45 machine.send_key("ctrl-c") 46 machine.wait_for_console_text("Small selection transfer complete") 47 machine.succeed("su - '${user}' -c 'ringboard search Hello | grep world!'") 48 ''; 49}