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