63 lines
1.3 KiB
Nix
63 lines
1.3 KiB
Nix
import ./make-test-python.nix ({ pkgs, ...} :
|
|
|
|
{
|
|
name = "vscodium";
|
|
meta = with pkgs.lib.maintainers; {
|
|
maintainers = [ turion ];
|
|
};
|
|
|
|
machine = { ... }:
|
|
|
|
{
|
|
imports = [
|
|
./common/user-account.nix
|
|
./common/x11.nix
|
|
];
|
|
|
|
virtualisation.memorySize = 2047;
|
|
services.xserver.enable = true;
|
|
test-support.displayManager.auto.user = "alice";
|
|
environment.systemPackages = with pkgs; [
|
|
vscodium
|
|
];
|
|
};
|
|
|
|
enableOCR = true;
|
|
|
|
testScript = { nodes, ... }: ''
|
|
# Start up X
|
|
start_all()
|
|
machine.wait_for_x()
|
|
|
|
# Create a file that we'll open
|
|
machine.succeed("su - alice -c 'echo \" Hello World\" > foo.txt'")
|
|
|
|
# It's one line long
|
|
assert "1 foo.txt" in machine.succeed(
|
|
"su - alice -c 'wc foo.txt -l'"
|
|
), "File has wrong length"
|
|
|
|
# Start VSCodium with that file
|
|
machine.succeed("su - alice -c 'codium foo.txt' &")
|
|
|
|
# Wait for the window to appear
|
|
machine.wait_for_text("VSCodium")
|
|
|
|
# Add a line
|
|
machine.send_key("ret")
|
|
|
|
# Save file
|
|
machine.send_key("ctrl-s")
|
|
|
|
# Wait until the file has been saved
|
|
machine.sleep(1)
|
|
|
|
# Now the file is 2 lines long
|
|
assert "2 foo.txt" in machine.succeed(
|
|
"su - alice -c 'wc foo.txt -l'"
|
|
), "File has wrong length"
|
|
|
|
machine.screenshot("VSCodium")
|
|
'';
|
|
})
|