diff options
Diffstat (limited to 'nixpkgs/nixos/tests/vscodium.nix')
-rw-r--r-- | nixpkgs/nixos/tests/vscodium.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/vscodium.nix b/nixpkgs/nixos/tests/vscodium.nix new file mode 100644 index 000000000000..d817ce927ff8 --- /dev/null +++ b/nixpkgs/nixos/tests/vscodium.nix @@ -0,0 +1,79 @@ +let + tests = { + wayland = { pkgs, ... }: { + imports = [ ./common/wayland-cage.nix ]; + + services.cage.program = "${pkgs.vscodium}/bin/codium"; + + environment.variables.NIXOS_OZONE_WL = "1"; + environment.variables.DISPLAY = "do not use"; + + fonts.packages = with pkgs; [ dejavu_fonts ]; + }; + xorg = { pkgs, ... }: { + imports = [ ./common/user-account.nix ./common/x11.nix ]; + + virtualisation.memorySize = 2047; + services.xserver.enable = true; + services.xserver.displayManager.sessionCommands = '' + ${pkgs.vscodium}/bin/codium + ''; + test-support.displayManager.auto.user = "alice"; + }; + }; + + mkTest = name: machine: + import ./make-test-python.nix ({ pkgs, ... }: { + inherit name; + + nodes = { "${name}" = machine; }; + + meta = with pkgs.lib.maintainers; { + maintainers = [ synthetica turion ]; + }; + enableOCR = true; + + testScript = '' + @polling_condition + def codium_running(): + machine.succeed('pgrep -x codium') + + + start_all() + + machine.wait_for_unit('graphical.target') + + codium_running.wait() # type: ignore[union-attr] + with codium_running: # type: ignore[union-attr] + # Wait until vscodium is visible. "File" is in the menu bar. + machine.wait_for_text('Welcome') + machine.screenshot('start_screen') + + test_string = 'testfile' + + # Create a new file + machine.send_key('ctrl-n') + machine.wait_for_text('Untitled') + machine.screenshot('empty_editor') + + # Type a string + machine.send_chars(test_string) + machine.wait_for_text(test_string) + machine.screenshot('editor') + + # Save the file + machine.send_key('ctrl-s') + machine.wait_for_text('(Save|Desktop|alice|Size)') + machine.screenshot('save_window') + machine.send_key('ret') + + # (the default filename is the first line of the file) + machine.wait_for_file(f'/home/alice/{test_string}') + + # machine.send_key('ctrl-q') + # machine.wait_until_fails('pgrep -x codium') + ''; + }); + +in +builtins.mapAttrs (k: v: mkTest k v { }) tests |