diff options
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/freetube.nix | 41 | ||||
-rw-r--r-- | pkgs/applications/video/freetube/default.nix | 9 |
3 files changed, 47 insertions, 4 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 851a2cc4e03e3..456efe14464b0 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -306,6 +306,7 @@ in { forgejo = handleTest ./forgejo.nix { }; freenet = handleTest ./freenet.nix {}; freeswitch = handleTest ./freeswitch.nix {}; + freetube = discoverTests (import ./freetube.nix); freshrss-sqlite = handleTest ./freshrss-sqlite.nix {}; freshrss-pgsql = handleTest ./freshrss-pgsql.nix {}; frigate = handleTest ./frigate.nix {}; diff --git a/nixos/tests/freetube.nix b/nixos/tests/freetube.nix new file mode 100644 index 0000000000000..f285384b68e0a --- /dev/null +++ b/nixos/tests/freetube.nix @@ -0,0 +1,41 @@ +let + tests = { + wayland = { pkgs, ... }: { + imports = [ ./common/wayland-cage.nix ]; + services.cage.program = "${pkgs.freetube}/bin/freetube"; + virtualisation.memorySize = 2047; + environment.variables.NIXOS_OZONE_WL = "1"; + environment.variables.DISPLAY = "do not use"; + }; + xorg = { pkgs, ... }: { + imports = [ ./common/user-account.nix ./common/x11.nix ]; + virtualisation.memorySize = 2047; + services.xserver.enable = true; + services.xserver.displayManager.sessionCommands = '' + ${pkgs.freetube}/bin/freetube + ''; + test-support.displayManager.auto.user = "alice"; + }; + }; + + mkTest = name: machine: + import ./make-test-python.nix ({ pkgs, ... }: { + inherit name; + nodes = { "${name}" = machine; }; + meta.maintainers = with pkgs.lib.maintainers; [ kirillrdy ]; + enableOCR = true; + + testScript = '' + start_all() + machine.wait_for_unit('graphical.target') + machine.wait_for_text('Your Subscription list is currently empty') + machine.send_key("ctrl-r") + machine.wait_for_text('Your Subscription list is currently empty') + machine.screenshot("main.png") + machine.send_key("ctrl-comma") + machine.wait_for_text('General Settings', timeout=30) + machine.screenshot("preferences.png") + ''; + }); +in +builtins.mapAttrs (k: v: mkTest k v { }) tests diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix index 75f3cc910953a..a3fd87e6142ea 100644 --- a/pkgs/applications/video/freetube/default.nix +++ b/pkgs/applications/video/freetube/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, appimageTools, makeWrapper, electron_22 }: +{ stdenv, lib, fetchurl, appimageTools, makeWrapper, electron, nixosTests }: stdenv.mkDerivation rec { pname = "freetube"; @@ -9,6 +9,8 @@ stdenv.mkDerivation rec { sha256 = "add96ad3509d4d5c6d8658b005dfd046963cd6bb0a4e1f3e88f726a86c05810f"; }; + passthru.tests = nixosTests.freetube; + appimageContents = appimageTools.extractType2 { name = "${pname}-${version}"; inherit src; @@ -35,9 +37,8 @@ stdenv.mkDerivation rec { runHook postInstall ''; - # Electron version is set to 22 in order to match upstream postFixup = '' - makeWrapper ${electron_22}/bin/electron $out/bin/${pname} \ + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ --add-flags $out/share/${pname}/resources/app.asar ''; @@ -46,6 +47,6 @@ stdenv.mkDerivation rec { homepage = "https://freetubeapp.io/"; license = licenses.agpl3Only; maintainers = with maintainers; [ ryneeverett alyaeanyx ]; - inherit (electron_22.meta) platforms; + inherit (electron.meta) platforms; }; } |