summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2023-06-16 06:47:48 -0600
committerGitHub <noreply@github.com>2023-06-16 06:47:48 -0600
commitc72f24ec268f7d9864ec24535a112ad3bddf6056 (patch)
treea954ae208a85a9552694b491e5c1551752211352 /nixos
parent4c8ca604aef8204145c185c89cc52ee54dd7fc1a (diff)
parentfd800d851f46953bf534000f95607f24ed8e12ba (diff)
Merge pull request #237933 from pbek/feature/qownnotes-tests
qownnotes: add tests
Diffstat (limited to 'nixos')
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/qownnotes.nix70
2 files changed, 71 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 4857a45b9a03..5e846fc83d1a 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -643,6 +643,7 @@ in {
qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {};
quorum = handleTest ./quorum.nix {};
quake3 = handleTest ./quake3.nix {};
+ qownnotes = handleTest ./qownnotes.nix {};
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
diff --git a/nixos/tests/qownnotes.nix b/nixos/tests/qownnotes.nix
new file mode 100644
index 000000000000..93801cb98702
--- /dev/null
+++ b/nixos/tests/qownnotes.nix
@@ -0,0 +1,70 @@
+import ./make-test-python.nix ({ lib, pkgs, ...} :
+
+{
+ name = "qownnotes";
+ meta.maintainers = [ lib.maintainers.pbek ];
+
+ nodes.machine = { ... }:
+
+ {
+ imports = [
+ ./common/user-account.nix
+ ./common/x11.nix
+ ];
+
+ test-support.displayManager.auto.user = "alice";
+ environment.systemPackages = [
+ pkgs.qownnotes
+ pkgs.xdotool
+ ];
+ };
+
+ enableOCR = true;
+
+ testScript = { nodes, ... }: let
+ aliceDo = cmd: ''machine.succeed("su - alice -c '${cmd}' >&2 &");'';
+ in ''
+ with subtest("Ensure X starts"):
+ start_all()
+ machine.wait_for_x()
+
+ with subtest("Check QOwnNotes version on CLI"):
+ ${aliceDo "qownnotes --version"}
+
+ machine.wait_for_console_text("QOwnNotes ${pkgs.qownnotes.version}")
+
+ with subtest("Ensure QOwnNotes starts"):
+ # start QOwnNotes window
+ ${aliceDo "qownnotes"}
+
+ machine.wait_for_text("Welcome to QOwnNotes")
+ machine.screenshot("QOwnNotes-Welcome")
+
+ with subtest("Finish first-run wizard"):
+ # The wizard should show up now
+ machine.wait_for_text("Note folder")
+ machine.send_key("ret")
+ machine.wait_for_console_text("Note path '/home/alice/Notes' was now created.")
+ machine.wait_for_text("Panel layout")
+ machine.send_key("ret")
+ machine.wait_for_text("Nextcloud")
+ machine.send_key("ret")
+ machine.wait_for_text("App metric")
+ machine.send_key("ret")
+
+ # The main window should now show up
+ machine.wait_for_text("QOwnNotes - ${pkgs.qownnotes.version}")
+ machine.wait_for_open_port(22222)
+ machine.wait_for_console_text("QOwnNotes server listening on port 22222")
+
+ machine.screenshot("QOwnNotes-DemoNote")
+
+ with subtest("Create a new note"):
+ machine.send_key("ctrl-n")
+ machine.sleep(1)
+ machine.send_chars("This is a NixOS test!\n")
+ machine.wait_for_text("This is a NixOS test!")
+
+ machine.screenshot("QOwnNotes-NewNote")
+ '';
+})