1. 0.04 s $ /nix/store/wkkwxc04gdw6b263l1h29pjarjnjdyb6-coreutils-9.8/bin/timeout --kill-after=15s 1800s /nix/store/99b1z08awpxj8b6mzggn59gp1shljnff-nix-2.34.5/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes build --no-link git+https://codeberg.org/mtlynch/little-moments?ref=prefetch&rev=17a3e4a9cd56b43e653e34c1d9bfa06c921832b5#packages.x86_64-linux.e2e-tests --print-build-logs
  2. 3.82 s these 2 derivations will be built:
  3. 3.82 s /nix/store/5mwzd6wr4lywcggnra2znhnlizsv9scj-little-moments-dev-0.0.1.drv
  4. 3.82 s /nix/store/xypcwg7vgxyj7ydmp446n5q7wmpa33ci-little-moments-e2e-0.0.1.drv
  5. 3.92 s building '/nix/store/5mwzd6wr4lywcggnra2znhnlizsv9scj-little-moments-dev-0.0.1.drv'...
  6. 3.95 s little-moments-dev> Running phase: unpackPhase
  7. 3.95 s little-moments-dev> unpacking source archive /nix/store/lg54qr1v2ivj89w2p7vvn0hx8f2xpca9-source
  8. 3.98 s little-moments-dev> source root is source
  9. 4.00 s little-moments-dev> Running phase: patchPhase
  10. 4.01 s little-moments-dev> Running phase: updateAutotoolsGnuConfigScriptsPhase
  11. 4.03 s little-moments-dev> Running phase: configurePhase
  12. 4.15 s little-moments-dev> Running phase: buildPhase
  13. 4.16 s little-moments-dev> Building subPackage ./cmd/app
  14. 13.70 s little-moments-dev> Running phase: checkPhase
  15. 22.03 s little-moments-dev> ? codeberg.org/mtlynch/little-moments/cmd/app [no test files]
  16. 22.06 s little-moments-dev> Running phase: installPhase
  17. 22.07 s little-moments-dev> Running phase: fixupPhase
  18. 22.11 s little-moments-dev> shrinking RPATHs of ELF executables and libraries in /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1
  19. 22.12 s little-moments-dev> shrinking /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1/bin/app-dev
  20. 22.15 s little-moments-dev> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked
  21. 22.15 s little-moments-dev> checking for references to /build/ in /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1...
  22. 22.19 s little-moments-dev> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked
  23. 22.20 s little-moments-dev> patching script interpreter paths in /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1
  24. 22.21 s little-moments-dev> stripping (with command strip and flags -S -p) in /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1/bin
  25. 22.52 s little-moments-dev (post)> Uploading paths from nix-ci to the NixCI cache /nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1
  26. 22.55 s little-moments-dev (post)> warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  27. 22.56 s little-moments-dev (post)> copying 1 paths...
  28. 22.56 s little-moments-dev (post)> copying path '/nix/store/igz3ib0bd4lcdafn4x2fg9h3v8yz320a-little-moments-dev-0.0.1' to 'https://cache.nix-ci.com'...
  29. 27.64 s little-moments-dev (post)> warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  30. 27.74 s little-moments-dev (post)> copying 0 paths...
  31. 27.81 s building '/nix/store/xypcwg7vgxyj7ydmp446n5q7wmpa33ci-little-moments-e2e-0.0.1.drv'...
  32. 27.85 s little-moments-e2e> Running phase: unpackPhase
  33. 27.85 s little-moments-e2e> unpacking source archive /nix/store/lg54qr1v2ivj89w2p7vvn0hx8f2xpca9-source
  34. 27.87 s little-moments-e2e> source root is source
  35. 27.88 s little-moments-e2e> Running phase: patchPhase
  36. 27.89 s little-moments-e2e> Executing npmConfigHook
  37. 27.89 s little-moments-e2e> Configuring npm
  38. 27.89 s little-moments-e2e> Validating consistency between /build/source/package-lock.json and /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps/package-lock.json
  39. 27.91 s little-moments-e2e> Setting npm_config_cache to /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps
  40. 27.91 s little-moments-e2e> Installing dependencies
  41. 27.98 s little-moments-e2e> npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  42. 27.98 s little-moments-e2e> npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  43. 27.98 s little-moments-e2e> npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  44. 28.73 s little-moments-e2e>
  45. 28.73 s little-moments-e2e> added 100 packages, and audited 101 packages in 764ms
  46. 28.73 s little-moments-e2e>
  47. 28.73 s little-moments-e2e> 25 packages are looking for funding
  48. 28.73 s little-moments-e2e> run `npm fund` for details
  49. 28.73 s little-moments-e2e>
  50. 28.73 s little-moments-e2e> found 0 vulnerabilities
  51. 28.78 s little-moments-e2e> patching script interpreter paths in node_modules
  52. 28.79 s little-moments-e2e> node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  53. 28.81 s little-moments-e2e> node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  54. 28.82 s little-moments-e2e> node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  55. 28.83 s little-moments-e2e> node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  56. 28.84 s little-moments-e2e> node_modules/ulid/bin/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  57. 28.85 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  58. 28.87 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  59. 28.88 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  60. 28.89 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  61. 28.90 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  62. 28.91 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  63. 28.92 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  64. 28.93 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  65. 28.94 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  66. 28.95 s little-moments-e2e> node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  67. 28.97 s little-moments-e2e> node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/sh"
  68. 28.98 s little-moments-e2e> node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  69. 28.99 s little-moments-e2e> node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  70. 29.00 s little-moments-e2e> node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  71. 29.00 s little-moments-e2e> node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  72. 29.08 s little-moments-e2e> npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  73. 29.08 s little-moments-e2e> npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  74. 29.08 s little-moments-e2e> npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  75. 29.27 s little-moments-e2e> rebuilt dependencies successfully
  76. 29.28 s little-moments-e2e> patching script interpreter paths in node_modules
  77. 29.36 s little-moments-e2e> Finished npmConfigHook
  78. 29.36 s little-moments-e2e> Running phase: updateAutotoolsGnuConfigScriptsPhase
  79. 29.38 s little-moments-e2e> Running phase: configurePhase
  80. 29.41 s little-moments-e2e> no configure script, doing nothing
  81. 29.41 s little-moments-e2e> Running phase: buildPhase
  82. 29.41 s little-moments-e2e> no Makefile or custom buildPhase, doing nothing
  83. 29.42 s little-moments-e2e> Running phase: checkPhase
  84. 29.51 s little-moments-e2e> npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  85. 29.51 s little-moments-e2e> npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  86. 29.51 s little-moments-e2e> npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  87. 30.56 s little-moments-e2e> [WebServer] 2026/04/11 15:02:55 codeberg.org/mtlynch/little-moments/cmd/app/main.go:19: starting little-moments server
  88. 30.56 s little-moments-e2e> [WebServer] 2026/04/11 15:02:55 codeberg.org/mtlynch/little-moments/store/sqlite/sqlite.go:18: reading DB from testdata/store.db
  89. 31.27 s little-moments-e2e> [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/handlers/csp.go:43: CSP media origin: ""
  90. 31.27 s little-moments-e2e> [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/cmd/app/main.go:72: listening on http://localhost:6001
  91. 31.44 s little-moments-e2e> [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: POST /api/debug/db/per-session 404 19
  92. 31.51 s little-moments-e2e>
  93. 31.51 s little-moments-e2e> Running 10 tests using 1 worker
  94. 32.38 s little-moments-e2e> Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  95. 32.51 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  96. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  97. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  98. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  99. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  100. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  101. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  102. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  103. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  104. 32.52 s little-moments-e2e> [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  105. 38.58 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  106. 38.69 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  107. 38.69 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  108. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  109. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  110. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  111. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  112. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  113. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  114. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  115. 38.70 s little-moments-e2e> [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  116. 44.84 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  117. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  118. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  119. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  120. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  121. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  122. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  123. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  124. 44.95 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  125. 44.96 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  126. 44.96 s little-moments-e2e> [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  127. 51.01 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  128. 51.16 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  129. 51.16 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  130. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  131. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  132. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  133. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  134. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  135. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  136. 51.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  137. 51.18 s little-moments-e2e> [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  138. 57.33 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  139. 57.47 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  140. 57.47 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  141. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  142. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  143. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  144. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  145. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  146. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  147. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  148. 57.48 s little-moments-e2e> [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  149. 63.63 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  150. 63.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  151. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  152. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  153. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  154. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  155. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  156. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  157. 63.77 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  158. 63.78 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  159. 63.78 s little-moments-e2e> [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  160. 69.92 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  161. 70.06 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  162. 70.06 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  163. 70.06 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  164. 70.06 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  165. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  166. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  167. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  168. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  169. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  170. 70.07 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  171. 70.17 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  172. 70.18 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  173. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  174. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  175. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  176. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  177. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  178. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  179. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  180. 70.19 s little-moments-e2e> [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  181. 76.29 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  182. 76.44 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  183. 76.45 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  184. 76.45 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  185. 76.45 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  186. 76.45 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  187. 76.46 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  188. 76.46 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  189. 76.46 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  190. 76.46 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  191. 76.46 s little-moments-e2e> [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  192. 82.62 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  193. 82.75 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  194. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  195. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  196. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  197. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  198. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  199. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  200. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  201. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  202. 82.76 s little-moments-e2e> [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  203. 88.91 s little-moments-e2e> TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  204. 89.03 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  205. 89.03 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  206. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  207. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  208. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  209. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  210. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  211. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  212. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  213. 89.04 s little-moments-e2e> [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  214. 94.44 s little-moments-e2e> T
  215. 94.47 s little-moments-e2e>
  216. 94.47 s little-moments-e2e> 1) [chromium] › e2e/browse.spec.ts:66:7 › Browse media › shows the imported media entries on the browse page
  217. 94.47 s little-moments-e2e>
  218. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  219. 94.47 s little-moments-e2e>
  220. 94.47 s little-moments-e2e> Error: expect(locator).toHaveCount(expected) failed
  221. 94.47 s little-moments-e2e>
  222. 94.47 s little-moments-e2e> Locator: getByRole('main').getByRole('link')
  223. 94.47 s little-moments-e2e> Expected: 5
  224. 94.47 s little-moments-e2e> Received: 0
  225. 94.47 s little-moments-e2e>
  226. 94.47 s little-moments-e2e> Call log:
  227. 94.47 s little-moments-e2e> - Expect "toHaveCount" with timeout 5000ms
  228. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link')
  229. 94.47 s little-moments-e2e> 9 × locator resolved to 0 elements
  230. 94.47 s little-moments-e2e> - unexpected value "0"
  231. 94.47 s little-moments-e2e>
  232. 94.47 s little-moments-e2e>
  233. 94.47 s little-moments-e2e> 69 | const mediaLinks = page.getByRole("main").getByRole("link");
  234. 94.47 s little-moments-e2e> 70 |
  235. 94.47 s little-moments-e2e> > 71 | await expect(mediaLinks).toHaveCount(5);
  236. 94.47 s little-moments-e2e> | ^
  237. 94.47 s little-moments-e2e> 72 | await expect(mediaLinks.nth(0)).toBeVisible();
  238. 94.47 s little-moments-e2e> 73 | await expect(mediaLinks.nth(1)).toBeVisible();
  239. 94.47 s little-moments-e2e> 74 | await expect(mediaLinks.nth(2)).toBeVisible();
  240. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:71:30
  241. 94.47 s little-moments-e2e>
  242. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  243. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/video.webm
  244. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  245. 94.47 s little-moments-e2e>
  246. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/error-context.md
  247. 94.47 s little-moments-e2e>
  248. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  249. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip
  250. 94.47 s little-moments-e2e> Usage:
  251. 94.47 s little-moments-e2e>
  252. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip
  253. 94.47 s little-moments-e2e>
  254. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  255. 94.47 s little-moments-e2e>
  256. 94.47 s little-moments-e2e> 2) [chromium] › e2e/browse.spec.ts:79:7 › Browse media › shows media thumbnails from newest to oldest
  257. 94.47 s little-moments-e2e>
  258. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  259. 94.47 s little-moments-e2e>
  260. 94.47 s little-moments-e2e> Error: expect(locator).toHaveCount(expected) failed
  261. 94.47 s little-moments-e2e>
  262. 94.47 s little-moments-e2e> Locator: getByRole('main').getByRole('link')
  263. 94.47 s little-moments-e2e> Expected: 5
  264. 94.47 s little-moments-e2e> Received: 0
  265. 94.47 s little-moments-e2e>
  266. 94.47 s little-moments-e2e> Call log:
  267. 94.47 s little-moments-e2e> - Expect "toHaveCount" with timeout 5000ms
  268. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link')
  269. 94.47 s little-moments-e2e> 9 × locator resolved to 0 elements
  270. 94.47 s little-moments-e2e> - unexpected value "0"
  271. 94.47 s little-moments-e2e>
  272. 94.47 s little-moments-e2e>
  273. 94.47 s little-moments-e2e> 80 | const mediaLinks = page.getByRole("main").getByRole("link");
  274. 94.47 s little-moments-e2e> 81 |
  275. 94.47 s little-moments-e2e> > 82 | await expect(mediaLinks).toHaveCount(5);
  276. 94.47 s little-moments-e2e> | ^
  277. 94.47 s little-moments-e2e> 83 | await expect(mediaLinks.nth(0)).toHaveAttribute("href", "/m/1000");
  278. 94.47 s little-moments-e2e> 84 | await expect(mediaLinks.nth(1)).toHaveAttribute("href", "/m/1001");
  279. 94.47 s little-moments-e2e> 85 | await expect(mediaLinks.nth(2)).toHaveAttribute("href", "/m/1002");
  280. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:82:30
  281. 94.47 s little-moments-e2e>
  282. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  283. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/video.webm
  284. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  285. 94.47 s little-moments-e2e>
  286. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/error-context.md
  287. 94.47 s little-moments-e2e>
  288. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  289. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip
  290. 94.47 s little-moments-e2e> Usage:
  291. 94.47 s little-moments-e2e>
  292. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip
  293. 94.47 s little-moments-e2e>
  294. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  295. 94.47 s little-moments-e2e>
  296. 94.47 s little-moments-e2e> 3) [chromium] › e2e/browse.spec.ts:90:7 › Browse media › shows a video indicator on video thumbnails only
  297. 94.47 s little-moments-e2e>
  298. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  299. 94.47 s little-moments-e2e>
  300. 94.47 s little-moments-e2e> Error: expect(locator).toHaveCount(expected) failed
  301. 94.47 s little-moments-e2e>
  302. 94.47 s little-moments-e2e> Locator: getByRole('main').getByRole('link')
  303. 94.47 s little-moments-e2e> Expected: 5
  304. 94.47 s little-moments-e2e> Received: 0
  305. 94.47 s little-moments-e2e>
  306. 94.47 s little-moments-e2e> Call log:
  307. 94.47 s little-moments-e2e> - Expect "toHaveCount" with timeout 5000ms
  308. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link')
  309. 94.47 s little-moments-e2e> 9 × locator resolved to 0 elements
  310. 94.47 s little-moments-e2e> - unexpected value "0"
  311. 94.47 s little-moments-e2e>
  312. 94.47 s little-moments-e2e>
  313. 94.47 s little-moments-e2e> 91 | const mediaLinks = page.getByRole("main").getByRole("link");
  314. 94.47 s little-moments-e2e> 92 |
  315. 94.47 s little-moments-e2e> > 93 | await expect(mediaLinks).toHaveCount(5);
  316. 94.47 s little-moments-e2e> | ^
  317. 94.47 s little-moments-e2e> 94 | await expect(
  318. 94.47 s little-moments-e2e> 95 | mediaLinks.nth(0).getByTestId("video-thumbnail-indicator"),
  319. 94.47 s little-moments-e2e> 96 | ).toHaveCount(0);
  320. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:93:30
  321. 94.47 s little-moments-e2e>
  322. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  323. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/video.webm
  324. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  325. 94.47 s little-moments-e2e>
  326. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/error-context.md
  327. 94.47 s little-moments-e2e>
  328. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  329. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip
  330. 94.47 s little-moments-e2e> Usage:
  331. 94.47 s little-moments-e2e>
  332. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip
  333. 94.47 s little-moments-e2e>
  334. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  335. 94.47 s little-moments-e2e>
  336. 94.47 s little-moments-e2e> 4) [chromium] › e2e/browse.spec.ts:111:7 › Browse media › opens the first entry from the browse page and shows its details
  337. 94.47 s little-moments-e2e>
  338. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  339. 94.47 s little-moments-e2e>
  340. 94.47 s little-moments-e2e> Error: locator.click: Test timeout of 5000ms exceeded.
  341. 94.47 s little-moments-e2e> Call log:
  342. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').first()
  343. 94.47 s little-moments-e2e>
  344. 94.47 s little-moments-e2e>
  345. 94.47 s little-moments-e2e> 114 | const mediaLinks = page.getByRole("main").getByRole("link");
  346. 94.47 s little-moments-e2e> 115 |
  347. 94.47 s little-moments-e2e> > 116 | await mediaLinks.nth(0).click();
  348. 94.47 s little-moments-e2e> | ^
  349. 94.47 s little-moments-e2e> 117 |
  350. 94.47 s little-moments-e2e> 118 | const content = page.getByRole("main");
  351. 94.47 s little-moments-e2e> 119 |
  352. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:116:29
  353. 94.47 s little-moments-e2e>
  354. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  355. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/video.webm
  356. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  357. 94.47 s little-moments-e2e>
  358. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/error-context.md
  359. 94.47 s little-moments-e2e>
  360. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  361. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip
  362. 94.47 s little-moments-e2e> Usage:
  363. 94.47 s little-moments-e2e>
  364. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip
  365. 94.47 s little-moments-e2e>
  366. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  367. 94.47 s little-moments-e2e>
  368. 94.47 s little-moments-e2e> 5) [chromium] › e2e/browse.spec.ts:133:7 › Browse media › moves through adjacent entries with Previous and Next links
  369. 94.47 s little-moments-e2e>
  370. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  371. 94.47 s little-moments-e2e>
  372. 94.47 s little-moments-e2e> Error: locator.click: Test timeout of 5000ms exceeded.
  373. 94.47 s little-moments-e2e> Call log:
  374. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').nth(1)
  375. 94.47 s little-moments-e2e>
  376. 94.47 s little-moments-e2e>
  377. 94.47 s little-moments-e2e> 136 | const mediaLinks = page.getByRole("main").getByRole("link");
  378. 94.47 s little-moments-e2e> 137 |
  379. 94.47 s little-moments-e2e> > 138 | await mediaLinks.nth(1).click();
  380. 94.47 s little-moments-e2e> | ^
  381. 94.47 s little-moments-e2e> 139 | await page.getByRole("main").getByRole("link", { name: "Next" }).click();
  382. 94.47 s little-moments-e2e> 140 |
  383. 94.47 s little-moments-e2e> 141 | const content = page.getByRole("main");
  384. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:138:29
  385. 94.47 s little-moments-e2e>
  386. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  387. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/video.webm
  388. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  389. 94.47 s little-moments-e2e>
  390. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/error-context.md
  391. 94.47 s little-moments-e2e>
  392. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  393. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip
  394. 94.47 s little-moments-e2e> Usage:
  395. 94.47 s little-moments-e2e>
  396. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip
  397. 94.47 s little-moments-e2e>
  398. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  399. 94.47 s little-moments-e2e>
  400. 94.47 s little-moments-e2e> 6) [chromium] › e2e/browse.spec.ts:164:7 › Browse media › moves through adjacent entries with left and right arrow keys
  401. 94.47 s little-moments-e2e>
  402. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  403. 94.47 s little-moments-e2e>
  404. 94.47 s little-moments-e2e> Error: locator.click: Test timeout of 5000ms exceeded.
  405. 94.47 s little-moments-e2e> Call log:
  406. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').nth(2)
  407. 94.47 s little-moments-e2e>
  408. 94.47 s little-moments-e2e>
  409. 94.47 s little-moments-e2e> 167 | const mediaLinks = page.getByRole("main").getByRole("link");
  410. 94.47 s little-moments-e2e> 168 |
  411. 94.47 s little-moments-e2e> > 169 | await mediaLinks.nth(2).click();
  412. 94.47 s little-moments-e2e> | ^
  413. 94.47 s little-moments-e2e> 170 |
  414. 94.47 s little-moments-e2e> 171 | await expect(page).toHaveURL("/m/1002");
  415. 94.47 s little-moments-e2e> 172 | await expect(page.getByRole("main")).toContainText("test video #1");
  416. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:169:29
  417. 94.47 s little-moments-e2e>
  418. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  419. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/video.webm
  420. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  421. 94.47 s little-moments-e2e>
  422. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/error-context.md
  423. 94.47 s little-moments-e2e>
  424. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  425. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip
  426. 94.47 s little-moments-e2e> Usage:
  427. 94.47 s little-moments-e2e>
  428. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip
  429. 94.47 s little-moments-e2e>
  430. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  431. 94.47 s little-moments-e2e>
  432. 94.47 s little-moments-e2e> 7) [chromium] › e2e/browse.spec.ts:185:7 › Browse media › moves through adjacent entries with swipe gestures on mobile
  433. 94.47 s little-moments-e2e>
  434. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  435. 94.47 s little-moments-e2e>
  436. 94.47 s little-moments-e2e> Error: locator.click: Test ended.
  437. 94.47 s little-moments-e2e> Call log:
  438. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').nth(2)
  439. 94.47 s little-moments-e2e>
  440. 94.47 s little-moments-e2e>
  441. 94.47 s little-moments-e2e> 193 |
  442. 94.47 s little-moments-e2e> 194 | await mobilePage.goto("/");
  443. 94.47 s little-moments-e2e> > 195 | await mobilePage.getByRole("main").getByRole("link").nth(2).click();
  444. 94.47 s little-moments-e2e> | ^
  445. 94.47 s little-moments-e2e> 196 | await expect(mobilePage).toHaveURL("/m/1002");
  446. 94.47 s little-moments-e2e> 197 | await expect(mobilePage.getByRole("main")).toContainText("test video #1");
  447. 94.47 s little-moments-e2e> 198 |
  448. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:195:65
  449. 94.47 s little-moments-e2e>
  450. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  451. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/video.webm
  452. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  453. 94.47 s little-moments-e2e>
  454. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/error-context.md
  455. 94.47 s little-moments-e2e>
  456. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  457. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip
  458. 94.47 s little-moments-e2e> Usage:
  459. 94.47 s little-moments-e2e>
  460. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip
  461. 94.47 s little-moments-e2e>
  462. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  463. 94.47 s little-moments-e2e>
  464. 94.47 s little-moments-e2e> 8) [chromium] › e2e/browse.spec.ts:212:7 › Browse media › shows the current media position within the full list
  465. 94.47 s little-moments-e2e>
  466. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  467. 94.47 s little-moments-e2e>
  468. 94.47 s little-moments-e2e> Error: locator.click: Test timeout of 5000ms exceeded.
  469. 94.47 s little-moments-e2e> Call log:
  470. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').first()
  471. 94.47 s little-moments-e2e>
  472. 94.47 s little-moments-e2e>
  473. 94.47 s little-moments-e2e> 215 | let mediaLinks = page.getByRole("main").getByRole("link");
  474. 94.47 s little-moments-e2e> 216 |
  475. 94.47 s little-moments-e2e> > 217 | await mediaLinks.nth(0).click();
  476. 94.47 s little-moments-e2e> | ^
  477. 94.47 s little-moments-e2e> 218 | await expect(page.getByRole("main")).toContainText("1 of 5");
  478. 94.47 s little-moments-e2e> 219 |
  479. 94.47 s little-moments-e2e> 220 | await page.getByRole("main").getByRole("link", { name: "Next" }).click();
  480. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:217:29
  481. 94.47 s little-moments-e2e>
  482. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  483. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/video.webm
  484. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  485. 94.47 s little-moments-e2e>
  486. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/error-context.md
  487. 94.47 s little-moments-e2e>
  488. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  489. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip
  490. 94.47 s little-moments-e2e> Usage:
  491. 94.47 s little-moments-e2e>
  492. 94.47 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip
  493. 94.47 s little-moments-e2e>
  494. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  495. 94.47 s little-moments-e2e>
  496. 94.47 s little-moments-e2e> 9) [chromium] › e2e/browse.spec.ts:229:7 › Browse media › opens the last entry from the browse page and shows the oldest media
  497. 94.47 s little-moments-e2e>
  498. 94.47 s little-moments-e2e> Test timeout of 5000ms exceeded.
  499. 94.47 s little-moments-e2e>
  500. 94.47 s little-moments-e2e> Error: locator.click: Test timeout of 5000ms exceeded.
  501. 94.47 s little-moments-e2e> Call log:
  502. 94.47 s little-moments-e2e> - waiting for getByRole('main').getByRole('link').nth(4)
  503. 94.47 s little-moments-e2e>
  504. 94.47 s little-moments-e2e>
  505. 94.47 s little-moments-e2e> 232 | const mediaLinks = page.getByRole("main").getByRole("link");
  506. 94.47 s little-moments-e2e> 233 |
  507. 94.47 s little-moments-e2e> > 234 | await mediaLinks.nth(4).click();
  508. 94.47 s little-moments-e2e> | ^
  509. 94.47 s little-moments-e2e> 235 |
  510. 94.47 s little-moments-e2e> 236 | const content = page.getByRole("main");
  511. 94.47 s little-moments-e2e> 237 |
  512. 94.47 s little-moments-e2e> at /build/source/e2e/browse.spec.ts:234:29
  513. 94.47 s little-moments-e2e>
  514. 94.47 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  515. 94.47 s little-moments-e2e> e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/video.webm
  516. 94.47 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  517. 94.47 s little-moments-e2e>
  518. 94.47 s little-moments-e2e> Error Context: e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/error-context.md
  519. 94.47 s little-moments-e2e>
  520. 94.47 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  521. 94.48 s little-moments-e2e> e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip
  522. 94.48 s little-moments-e2e> Usage:
  523. 94.48 s little-moments-e2e>
  524. 94.48 s little-moments-e2e> npx playwright show-trace e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip
  525. 94.48 s little-moments-e2e>
  526. 94.48 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  527. 94.48 s little-moments-e2e>
  528. 94.48 s little-moments-e2e> 10) [chromium] › e2e/media.spec.ts:6:7 › View media › shows reaction with a tooltip of the exact date
  529. 94.48 s little-moments-e2e>
  530. 94.48 s little-moments-e2e> Test timeout of 5000ms exceeded.
  531. 94.48 s little-moments-e2e>
  532. 94.48 s little-moments-e2e> Error: expect(locator).toHaveCount(expected) failed
  533. 94.48 s little-moments-e2e>
  534. 94.48 s little-moments-e2e> Locator: getByRole('main').getByRole('link')
  535. 94.48 s little-moments-e2e> Expected: 5
  536. 94.48 s little-moments-e2e> Received: 0
  537. 94.48 s little-moments-e2e>
  538. 94.48 s little-moments-e2e> Call log:
  539. 94.48 s little-moments-e2e> - Expect "toHaveCount" with timeout 5000ms
  540. 94.48 s little-moments-e2e> - waiting for getByRole('main').getByRole('link')
  541. 94.48 s little-moments-e2e> 9 × locator resolved to 0 elements
  542. 94.48 s little-moments-e2e> - unexpected value "0"
  543. 94.48 s little-moments-e2e>
  544. 94.48 s little-moments-e2e>
  545. 94.48 s little-moments-e2e> 9 | // Navigate to the entry that has a reaction (test photo #2).
  546. 94.48 s little-moments-e2e> 10 | const mediaLinks = page.getByRole("main").getByRole("link");
  547. 94.48 s little-moments-e2e> > 11 | await expect(mediaLinks).toHaveCount(5);
  548. 94.48 s little-moments-e2e> | ^
  549. 94.48 s little-moments-e2e> 12 | // Entry order is newest-first: animated photo, video #2, video #1, photo #2, photo #1.
  550. 94.48 s little-moments-e2e> 13 | await mediaLinks.nth(3).click();
  551. 94.48 s little-moments-e2e> 14 | await expect(page.getByRole("main")).toContainText("test photo #2");
  552. 94.48 s little-moments-e2e> at /build/source/e2e/media.spec.ts:11:30
  553. 94.48 s little-moments-e2e>
  554. 94.48 s little-moments-e2e> attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  555. 94.48 s little-moments-e2e> e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/video.webm
  556. 94.48 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  557. 94.48 s little-moments-e2e>
  558. 94.48 s little-moments-e2e> Error Context: e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/error-context.md
  559. 94.48 s little-moments-e2e>
  560. 94.48 s little-moments-e2e> attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  561. 94.48 s little-moments-e2e> e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip
  562. 94.48 s little-moments-e2e> Usage:
  563. 94.48 s little-moments-e2e>
  564. 94.48 s little-moments-e2e> npx playwright show-trace e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip
  565. 94.48 s little-moments-e2e>
  566. 94.48 s little-moments-e2e> ────────────────────────────────────────────────────────────────────────────────────────────────
  567. 94.48 s little-moments-e2e>
  568. 94.48 s little-moments-e2e> 10 failed
  569. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:66:7 › Browse media › shows the imported media entries on the browse page
  570. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:79:7 › Browse media › shows media thumbnails from newest to oldest
  571. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:90:7 › Browse media › shows a video indicator on video thumbnails only
  572. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:111:7 › Browse media › opens the first entry from the browse page and shows its details
  573. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:133:7 › Browse media › moves through adjacent entries with Previous and Next links
  574. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:164:7 › Browse media › moves through adjacent entries with left and right arrow keys
  575. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:185:7 › Browse media › moves through adjacent entries with swipe gestures on mobile
  576. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:212:7 › Browse media › shows the current media position within the full list
  577. 94.48 s little-moments-e2e> [chromium] › e2e/browse.spec.ts:229:7 › Browse media › opens the last entry from the browse page and shows the oldest media
  578. 94.48 s little-moments-e2e> [chromium] › e2e/media.spec.ts:6:7 › View media › shows reaction with a tooltip of the exact date
  579. 94.69 s error: Cannot build '/nix/store/xypcwg7vgxyj7ydmp446n5q7wmpa33ci-little-moments-e2e-0.0.1.drv'.
  580. 94.69 s Reason: builder failed with exit code 1.
  581. 94.69 s Output paths:
  582. 94.69 s /nix/store/cvis4m83ms1i0gic19y0fidyv41m91br-little-moments-e2e-0.0.1
  583. 94.69 s Last 547 log lines:
  584. 94.69 s > Running phase: unpackPhase
  585. 94.69 s > unpacking source archive /nix/store/lg54qr1v2ivj89w2p7vvn0hx8f2xpca9-source
  586. 94.69 s > source root is source
  587. 94.69 s > Running phase: patchPhase
  588. 94.69 s > Executing npmConfigHook
  589. 94.69 s > Configuring npm
  590. 94.69 s > Validating consistency between /build/source/package-lock.json and /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps/package-lock.json
  591. 94.69 s > Setting npm_config_cache to /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps
  592. 94.69 s > Installing dependencies
  593. 94.69 s > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  594. 94.69 s > npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  595. 94.69 s > npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  596. 94.69 s >
  597. 94.69 s > added 100 packages, and audited 101 packages in 764ms
  598. 94.69 s >
  599. 94.69 s > 25 packages are looking for funding
  600. 94.69 s > run `npm fund` for details
  601. 94.69 s >
  602. 94.69 s > found 0 vulnerabilities
  603. 94.69 s > patching script interpreter paths in node_modules
  604. 94.69 s > node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  605. 94.69 s > node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  606. 94.69 s > node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  607. 94.69 s > node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  608. 94.69 s > node_modules/ulid/bin/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  609. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  610. 94.69 s > node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  611. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  612. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  613. 94.69 s > node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  614. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  615. 94.69 s > node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  616. 94.69 s > node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  617. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  618. 94.69 s > node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
  619. 94.69 s > node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/sh"
  620. 94.69 s > node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  621. 94.69 s > node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  622. 94.69 s > node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  623. 94.69 s > node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
  624. 94.69 s > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  625. 94.69 s > npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  626. 94.69 s > npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  627. 94.69 s > rebuilt dependencies successfully
  628. 94.69 s > patching script interpreter paths in node_modules
  629. 94.69 s > Finished npmConfigHook
  630. 94.69 s > Running phase: updateAutotoolsGnuConfigScriptsPhase
  631. 94.69 s > Running phase: configurePhase
  632. 94.69 s > no configure script, doing nothing
  633. 94.69 s > Running phase: buildPhase
  634. 94.69 s > no Makefile or custom buildPhase, doing nothing
  635. 94.69 s > Running phase: checkPhase
  636. 94.69 s > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm.
  637. 94.69 s > npm warn Unknown env config "platform". This will stop working in the next major version of npm.
  638. 94.69 s > npm warn Unknown env config "arch". This will stop working in the next major version of npm.
  639. 94.69 s > [WebServer] 2026/04/11 15:02:55 codeberg.org/mtlynch/little-moments/cmd/app/main.go:19: starting little-moments server
  640. 94.69 s > [WebServer] 2026/04/11 15:02:55 codeberg.org/mtlynch/little-moments/store/sqlite/sqlite.go:18: reading DB from testdata/store.db
  641. 94.69 s > [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/handlers/csp.go:43: CSP media origin: ""
  642. 94.69 s > [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/cmd/app/main.go:72: listening on http://localhost:6001
  643. 94.69 s > [WebServer] 2026/04/11 15:02:56 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: POST /api/debug/db/per-session 404 19
  644. 94.69 s >
  645. 94.69 s > Running 10 tests using 1 worker
  646. 94.69 s > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  647. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  648. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  649. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  650. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  651. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  652. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  653. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  654. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  655. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  656. 94.69 s > [WebServer] 2026/04/11 15:02:57 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  657. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  658. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  659. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  660. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  661. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  662. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  663. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  664. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  665. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  666. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  667. 94.69 s > [WebServer] 2026/04/11 15:03:03 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  668. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  669. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  670. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  671. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  672. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  673. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  674. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  675. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  676. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  677. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  678. 94.69 s > [WebServer] 2026/04/11 15:03:10 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  679. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  680. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  681. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  682. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  683. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  684. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  685. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  686. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  687. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  688. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  689. 94.69 s > [WebServer] 2026/04/11 15:03:16 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  690. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  691. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  692. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  693. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  694. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  695. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  696. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  697. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  698. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  699. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  700. 94.69 s > [WebServer] 2026/04/11 15:03:22 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  701. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  702. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  703. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  704. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  705. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  706. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  707. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  708. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  709. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  710. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  711. 94.69 s > [WebServer] 2026/04/11 15:03:29 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  712. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  713. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  714. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  715. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  716. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  717. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  718. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  719. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  720. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  721. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  722. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  723. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  724. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  725. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  726. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  727. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  728. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  729. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  730. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  731. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  732. 94.69 s > [WebServer] 2026/04/11 15:03:35 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  733. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  734. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  735. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  736. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  737. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  738. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  739. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  740. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  741. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  742. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  743. 94.69 s > [WebServer] 2026/04/11 15:03:41 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  744. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  745. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3292
  746. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  747. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  748. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  749. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  750. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  751. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  752. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  753. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  754. 94.69 s > [WebServer] 2026/04/11 15:03:48 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  755. 94.69 s > TSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
  756. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET / 200 3288
  757. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
  758. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/css/style.css 200 25
  759. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
  760. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
  761. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
  762. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
  763. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/third-party/lucide@1.6.0/lucide.min.js 200 397128
  764. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/lucide.js 200 478
  765. 94.69 s > [WebServer] 2026/04/11 15:03:54 codeberg.org/mtlynch/little-moments/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
  766. 94.69 s > T
  767. 94.69 s >
  768. 94.69 s > 1) [chromium] › e2e/browse.spec.ts:66:7 › Browse media › shows the imported media entries on the browse page
  769. 94.69 s >
  770. 94.69 s > Test timeout of 5000ms exceeded.
  771. 94.69 s >
  772. 94.69 s > Error: expect(locator).toHaveCount(expected) failed
  773. 94.69 s >
  774. 94.69 s > Locator: getByRole('main').getByRole('link')
  775. 94.69 s > Expected: 5
  776. 94.69 s > Received: 0
  777. 94.69 s >
  778. 94.69 s > Call log:
  779. 94.69 s > - Expect "toHaveCount" with timeout 5000ms
  780. 94.69 s > - waiting for getByRole('main').getByRole('link')
  781. 94.69 s > 9 × locator resolved to 0 elements
  782. 94.69 s > - unexpected value "0"
  783. 94.69 s >
  784. 94.69 s >
  785. 94.69 s > 69 | const mediaLinks = page.getByRole("main").getByRole("link");
  786. 94.69 s > 70 |
  787. 94.69 s > > 71 | await expect(mediaLinks).toHaveCount(5);
  788. 94.69 s > | ^
  789. 94.69 s > 72 | await expect(mediaLinks.nth(0)).toBeVisible();
  790. 94.69 s > 73 | await expect(mediaLinks.nth(1)).toBeVisible();
  791. 94.69 s > 74 | await expect(mediaLinks.nth(2)).toBeVisible();
  792. 94.69 s > at /build/source/e2e/browse.spec.ts:71:30
  793. 94.69 s >
  794. 94.69 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  795. 94.69 s > e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/video.webm
  796. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  797. 94.69 s >
  798. 94.69 s > Error Context: e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/error-context.md
  799. 94.69 s >
  800. 94.69 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  801. 94.69 s > e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip
  802. 94.69 s > Usage:
  803. 94.69 s >
  804. 94.69 s > npx playwright show-trace e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip
  805. 94.69 s >
  806. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  807. 94.69 s >
  808. 94.69 s > 2) [chromium] › e2e/browse.spec.ts:79:7 › Browse media › shows media thumbnails from newest to oldest
  809. 94.69 s >
  810. 94.69 s > Test timeout of 5000ms exceeded.
  811. 94.69 s >
  812. 94.69 s > Error: expect(locator).toHaveCount(expected) failed
  813. 94.69 s >
  814. 94.69 s > Locator: getByRole('main').getByRole('link')
  815. 94.69 s > Expected: 5
  816. 94.69 s > Received: 0
  817. 94.69 s >
  818. 94.69 s > Call log:
  819. 94.69 s > - Expect "toHaveCount" with timeout 5000ms
  820. 94.69 s > - waiting for getByRole('main').getByRole('link')
  821. 94.69 s > 9 × locator resolved to 0 elements
  822. 94.69 s > - unexpected value "0"
  823. 94.69 s >
  824. 94.69 s >
  825. 94.69 s > 80 | const mediaLinks = page.getByRole("main").getByRole("link");
  826. 94.69 s > 81 |
  827. 94.69 s > > 82 | await expect(mediaLinks).toHaveCount(5);
  828. 94.69 s > | ^
  829. 94.69 s > 83 | await expect(mediaLinks.nth(0)).toHaveAttribute("href", "/m/1000");
  830. 94.69 s > 84 | await expect(mediaLinks.nth(1)).toHaveAttribute("href", "/m/1001");
  831. 94.69 s > 85 | await expect(mediaLinks.nth(2)).toHaveAttribute("href", "/m/1002");
  832. 94.69 s > at /build/source/e2e/browse.spec.ts:82:30
  833. 94.69 s >
  834. 94.69 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  835. 94.69 s > e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/video.webm
  836. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  837. 94.69 s >
  838. 94.69 s > Error Context: e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/error-context.md
  839. 94.69 s >
  840. 94.69 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  841. 94.69 s > e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip
  842. 94.69 s > Usage:
  843. 94.69 s >
  844. 94.69 s > npx playwright show-trace e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip
  845. 94.69 s >
  846. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  847. 94.69 s >
  848. 94.69 s > 3) [chromium] › e2e/browse.spec.ts:90:7 › Browse media › shows a video indicator on video thumbnails only
  849. 94.69 s >
  850. 94.69 s > Test timeout of 5000ms exceeded.
  851. 94.69 s >
  852. 94.69 s > Error: expect(locator).toHaveCount(expected) failed
  853. 94.69 s >
  854. 94.69 s > Locator: getByRole('main').getByRole('link')
  855. 94.69 s > Expected: 5
  856. 94.69 s > Received: 0
  857. 94.69 s >
  858. 94.69 s > Call log:
  859. 94.69 s > - Expect "toHaveCount" with timeout 5000ms
  860. 94.69 s > - waiting for getByRole('main').getByRole('link')
  861. 94.69 s > 9 × locator resolved to 0 elements
  862. 94.69 s > - unexpected value "0"
  863. 94.69 s >
  864. 94.69 s >
  865. 94.69 s > 91 | const mediaLinks = page.getByRole("main").getByRole("link");
  866. 94.69 s > 92 |
  867. 94.69 s > > 93 | await expect(mediaLinks).toHaveCount(5);
  868. 94.69 s > | ^
  869. 94.69 s > 94 | await expect(
  870. 94.69 s > 95 | mediaLinks.nth(0).getByTestId("video-thumbnail-indicator"),
  871. 94.69 s > 96 | ).toHaveCount(0);
  872. 94.69 s > at /build/source/e2e/browse.spec.ts:93:30
  873. 94.69 s >
  874. 94.69 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  875. 94.69 s > e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/video.webm
  876. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  877. 94.69 s >
  878. 94.69 s > Error Context: e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/error-context.md
  879. 94.69 s >
  880. 94.69 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  881. 94.69 s > e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip
  882. 94.69 s > Usage:
  883. 94.69 s >
  884. 94.69 s > npx playwright show-trace e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip
  885. 94.69 s >
  886. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  887. 94.69 s >
  888. 94.69 s > 4) [chromium] › e2e/browse.spec.ts:111:7 › Browse media › opens the first entry from the browse page and shows its details
  889. 94.69 s >
  890. 94.69 s > Test timeout of 5000ms exceeded.
  891. 94.69 s >
  892. 94.69 s > Error: locator.click: Test timeout of 5000ms exceeded.
  893. 94.69 s > Call log:
  894. 94.69 s > - waiting for getByRole('main').getByRole('link').first()
  895. 94.69 s >
  896. 94.69 s >
  897. 94.69 s > 114 | const mediaLinks = page.getByRole("main").getByRole("link");
  898. 94.69 s > 115 |
  899. 94.69 s > > 116 | await mediaLinks.nth(0).click();
  900. 94.69 s > | ^
  901. 94.69 s > 117 |
  902. 94.69 s > 118 | const content = page.getByRole("main");
  903. 94.69 s > 119 |
  904. 94.69 s > at /build/source/e2e/browse.spec.ts:116:29
  905. 94.69 s >
  906. 94.69 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  907. 94.69 s > e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/video.webm
  908. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  909. 94.69 s >
  910. 94.69 s > Error Context: e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/error-context.md
  911. 94.69 s >
  912. 94.69 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  913. 94.69 s > e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip
  914. 94.69 s > Usage:
  915. 94.69 s >
  916. 94.69 s > npx playwright show-trace e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip
  917. 94.69 s >
  918. 94.69 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  919. 94.69 s >
  920. 94.69 s > 5) [chromium] › e2e/browse.spec.ts:133:7 › Browse media › moves through adjacent entries with Previous and Next links
  921. 94.69 s >
  922. 94.69 s > Test timeout of 5000ms exceeded.
  923. 94.69 s >
  924. 94.69 s > Error: locator.click: Test timeout of 5000ms exceeded.
  925. 94.69 s > Call log:
  926. 94.69 s > - waiting for getByRole('main').getByRole('link').nth(1)
  927. 94.69 s >
  928. 94.69 s >
  929. 94.69 s > 136 | const mediaLinks = page.getByRole("main").getByRole("link");
  930. 94.69 s > 137 |
  931. 94.69 s > > 138 | await mediaLinks.nth(1).click();
  932. 94.69 s > | ^
  933. 94.69 s > 139 | await page.getByRole("main").getByRole("link", { name: "Next" }).click();
  934. 94.69 s > 140 |
  935. 94.70 s > 141 | const content = page.getByRole("main");
  936. 94.70 s > at /build/source/e2e/browse.spec.ts:138:29
  937. 94.70 s >
  938. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  939. 94.70 s > e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/video.webm
  940. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  941. 94.70 s >
  942. 94.70 s > Error Context: e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/error-context.md
  943. 94.70 s >
  944. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  945. 94.70 s > e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip
  946. 94.70 s > Usage:
  947. 94.70 s >
  948. 94.70 s > npx playwright show-trace e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip
  949. 94.70 s >
  950. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  951. 94.70 s >
  952. 94.70 s > 6) [chromium] › e2e/browse.spec.ts:164:7 › Browse media › moves through adjacent entries with left and right arrow keys
  953. 94.70 s >
  954. 94.70 s > Test timeout of 5000ms exceeded.
  955. 94.70 s >
  956. 94.70 s > Error: locator.click: Test timeout of 5000ms exceeded.
  957. 94.70 s > Call log:
  958. 94.70 s > - waiting for getByRole('main').getByRole('link').nth(2)
  959. 94.70 s >
  960. 94.70 s >
  961. 94.70 s > 167 | const mediaLinks = page.getByRole("main").getByRole("link");
  962. 94.70 s > 168 |
  963. 94.70 s > > 169 | await mediaLinks.nth(2).click();
  964. 94.70 s > | ^
  965. 94.70 s > 170 |
  966. 94.70 s > 171 | await expect(page).toHaveURL("/m/1002");
  967. 94.70 s > 172 | await expect(page.getByRole("main")).toContainText("test video #1");
  968. 94.70 s > at /build/source/e2e/browse.spec.ts:169:29
  969. 94.70 s >
  970. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  971. 94.70 s > e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/video.webm
  972. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  973. 94.70 s >
  974. 94.70 s > Error Context: e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/error-context.md
  975. 94.70 s >
  976. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  977. 94.70 s > e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip
  978. 94.70 s > Usage:
  979. 94.70 s >
  980. 94.70 s > npx playwright show-trace e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip
  981. 94.70 s >
  982. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  983. 94.70 s >
  984. 94.70 s > 7) [chromium] › e2e/browse.spec.ts:185:7 › Browse media › moves through adjacent entries with swipe gestures on mobile
  985. 94.70 s >
  986. 94.70 s > Test timeout of 5000ms exceeded.
  987. 94.70 s >
  988. 94.70 s > Error: locator.click: Test ended.
  989. 94.70 s > Call log:
  990. 94.70 s > - waiting for getByRole('main').getByRole('link').nth(2)
  991. 94.70 s >
  992. 94.70 s >
  993. 94.70 s > 193 |
  994. 94.70 s > 194 | await mobilePage.goto("/");
  995. 94.70 s > > 195 | await mobilePage.getByRole("main").getByRole("link").nth(2).click();
  996. 94.70 s > | ^
  997. 94.70 s > 196 | await expect(mobilePage).toHaveURL("/m/1002");
  998. 94.70 s > 197 | await expect(mobilePage.getByRole("main")).toContainText("test video #1");
  999. 94.70 s > 198 |
  1000. 94.70 s > at /build/source/e2e/browse.spec.ts:195:65
  1001. 94.70 s >
  1002. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  1003. 94.70 s > e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/video.webm
  1004. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1005. 94.70 s >
  1006. 94.70 s > Error Context: e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/error-context.md
  1007. 94.70 s >
  1008. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  1009. 94.70 s > e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip
  1010. 94.70 s > Usage:
  1011. 94.70 s >
  1012. 94.70 s > npx playwright show-trace e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip
  1013. 94.70 s >
  1014. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1015. 94.70 s >
  1016. 94.70 s > 8) [chromium] › e2e/browse.spec.ts:212:7 › Browse media › shows the current media position within the full list
  1017. 94.70 s >
  1018. 94.70 s > Test timeout of 5000ms exceeded.
  1019. 94.70 s >
  1020. 94.70 s > Error: locator.click: Test timeout of 5000ms exceeded.
  1021. 94.70 s > Call log:
  1022. 94.70 s > - waiting for getByRole('main').getByRole('link').first()
  1023. 94.70 s >
  1024. 94.70 s >
  1025. 94.70 s > 215 | let mediaLinks = page.getByRole("main").getByRole("link");
  1026. 94.70 s > 216 |
  1027. 94.70 s > > 217 | await mediaLinks.nth(0).click();
  1028. 94.70 s > | ^
  1029. 94.70 s > 218 | await expect(page.getByRole("main")).toContainText("1 of 5");
  1030. 94.70 s > 219 |
  1031. 94.70 s > 220 | await page.getByRole("main").getByRole("link", { name: "Next" }).click();
  1032. 94.70 s > at /build/source/e2e/browse.spec.ts:217:29
  1033. 94.70 s >
  1034. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  1035. 94.70 s > e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/video.webm
  1036. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1037. 94.70 s >
  1038. 94.70 s > Error Context: e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/error-context.md
  1039. 94.70 s >
  1040. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  1041. 94.70 s > e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip
  1042. 94.70 s > Usage:
  1043. 94.70 s >
  1044. 94.70 s > npx playwright show-trace e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip
  1045. 94.70 s >
  1046. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1047. 94.70 s >
  1048. 94.70 s > 9) [chromium] › e2e/browse.spec.ts:229:7 › Browse media › opens the last entry from the browse page and shows the oldest media
  1049. 94.70 s >
  1050. 94.70 s > Test timeout of 5000ms exceeded.
  1051. 94.70 s >
  1052. 94.70 s > Error: locator.click: Test timeout of 5000ms exceeded.
  1053. 94.70 s > Call log:
  1054. 94.70 s > - waiting for getByRole('main').getByRole('link').nth(4)
  1055. 94.70 s >
  1056. 94.70 s >
  1057. 94.70 s > 232 | const mediaLinks = page.getByRole("main").getByRole("link");
  1058. 94.70 s > 233 |
  1059. 94.70 s > > 234 | await mediaLinks.nth(4).click();
  1060. 94.70 s > | ^
  1061. 94.70 s > 235 |
  1062. 94.70 s > 236 | const content = page.getByRole("main");
  1063. 94.70 s > 237 |
  1064. 94.70 s > at /build/source/e2e/browse.spec.ts:234:29
  1065. 94.70 s >
  1066. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  1067. 94.70 s > e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/video.webm
  1068. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1069. 94.70 s >
  1070. 94.70 s > Error Context: e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/error-context.md
  1071. 94.70 s >
  1072. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  1073. 94.70 s > e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip
  1074. 94.70 s > Usage:
  1075. 94.70 s >
  1076. 94.70 s > npx playwright show-trace e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip
  1077. 94.70 s >
  1078. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1079. 94.70 s >
  1080. 94.70 s > 10) [chromium] › e2e/media.spec.ts:6:7 › View media › shows reaction with a tooltip of the exact date
  1081. 94.70 s >
  1082. 94.70 s > Test timeout of 5000ms exceeded.
  1083. 94.70 s >
  1084. 94.70 s > Error: expect(locator).toHaveCount(expected) failed
  1085. 94.70 s >
  1086. 94.70 s > Locator: getByRole('main').getByRole('link')
  1087. 94.70 s > Expected: 5
  1088. 94.70 s > Received: 0
  1089. 94.70 s >
  1090. 94.70 s > Call log:
  1091. 94.70 s > - Expect "toHaveCount" with timeout 5000ms
  1092. 94.70 s > - waiting for getByRole('main').getByRole('link')
  1093. 94.70 s > 9 × locator resolved to 0 elements
  1094. 94.70 s > - unexpected value "0"
  1095. 94.70 s >
  1096. 94.70 s >
  1097. 94.70 s > 9 | // Navigate to the entry that has a reaction (test photo #2).
  1098. 94.70 s > 10 | const mediaLinks = page.getByRole("main").getByRole("link");
  1099. 94.70 s > > 11 | await expect(mediaLinks).toHaveCount(5);
  1100. 94.70 s > | ^
  1101. 94.70 s > 12 | // Entry order is newest-first: animated photo, video #2, video #1, photo #2, photo #1.
  1102. 94.70 s > 13 | await mediaLinks.nth(3).click();
  1103. 94.70 s > 14 | await expect(page.getByRole("main")).toContainText("test photo #2");
  1104. 94.70 s > at /build/source/e2e/media.spec.ts:11:30
  1105. 94.70 s >
  1106. 94.70 s > attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
  1107. 94.70 s > e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/video.webm
  1108. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1109. 94.70 s >
  1110. 94.70 s > Error Context: e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/error-context.md
  1111. 94.70 s >
  1112. 94.70 s > attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
  1113. 94.70 s > e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip
  1114. 94.70 s > Usage:
  1115. 94.70 s >
  1116. 94.70 s > npx playwright show-trace e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip
  1117. 94.70 s >
  1118. 94.70 s > ────────────────────────────────────────────────────────────────────────────────────────────────
  1119. 94.70 s >
  1120. 94.70 s > 10 failed
  1121. 94.70 s > [chromium] › e2e/browse.spec.ts:66:7 › Browse media › shows the imported media entries on the browse page
  1122. 94.70 s > [chromium] › e2e/browse.spec.ts:79:7 › Browse media › shows media thumbnails from newest to oldest
  1123. 94.70 s > [chromium] › e2e/browse.spec.ts:90:7 › Browse media › shows a video indicator on video thumbnails only
  1124. 94.70 s > [chromium] › e2e/browse.spec.ts:111:7 › Browse media › opens the first entry from the browse page and shows its details
  1125. 94.70 s > [chromium] › e2e/browse.spec.ts:133:7 › Browse media › moves through adjacent entries with Previous and Next links
  1126. 94.70 s > [chromium] › e2e/browse.spec.ts:164:7 › Browse media › moves through adjacent entries with left and right arrow keys
  1127. 94.70 s > [chromium] › e2e/browse.spec.ts:185:7 › Browse media › moves through adjacent entries with swipe gestures on mobile
  1128. 94.70 s > [chromium] › e2e/browse.spec.ts:212:7 › Browse media › shows the current media position within the full list
  1129. 94.70 s > [chromium] › e2e/browse.spec.ts:229:7 › Browse media › opens the last entry from the browse page and shows the oldest media
  1130. 94.70 s > [chromium] › e2e/media.spec.ts:6:7 › View media › shows reaction with a tooltip of the exact date
  1131. 94.70 s For full logs, run:
  1132. 94.70 s nix log /nix/store/xypcwg7vgxyj7ydmp446n5q7wmpa33ci-little-moments-e2e-0.0.1.drv