MagicMirrorOrg / MagicMirror

MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant.
http://magicmirror.builders
MIT License
19.84k stars 4.21k forks source link

New RaspiOS releases dated Oct 22 2024, use node 23 #3609

Closed sdetweil closed 3 weeks ago

sdetweil commented 3 weeks ago

we don't install on node 23 due to the engines check..

i deleted package-lock and change engines to || 23

and it seems to run fine

develop does

node -v
v23.1.0

testcases on develop fail on macos Sonoma 14.5, run ok on ubuntu 22.04

Snip20241028_10

Mac-mini:MagicMirror sam$ npm run test:electron

> magicmirror@2.30.0-develop test:electron
> NODE_ENV=test jest --selectProjects electron -i --forceExit

Running one project: electron
 PASS   electron  tests/electron/env_spec.js (5.545 s)
  Electron app environment
    ✓ should open browserwindow (3408 ms)
  Development console tests
    ✓ should open browserwindow and dev console (1842 ms)

 FAIL   electron  tests/electron/modules/calendar_spec.js (175.894 s)
  Calendar module
    Test css classes
      ✓ has css class dayBeforeYesterday (2766 ms)
      ✕ has css class yesterday (20046 ms)
      ✕ has css class today (20041 ms)
      ✕ has css class tomorrow (20048 ms)
      ✕ has css class dayAfterTomorrow (20037 ms)
    Events from multiple calendars
      ✓ should show multiple events with the same title and start time from different calendars (2655 ms)
    rrule
      ✓ Issue #3393 recurrence dates past rrule until date (2403 ms)
    Exdate: LA crossover DST before midnight GMT
      ✕ LA crossover DST before midnight GMT should have 2 events (20036 ms)
    Exdate: LA crossover DST at midnight GMT local STD
      ✓ LA crossover DST before midnight GMT should have 2 events (2664 ms)
    Exdate: LA crossover DST at midnight GMT local DST
      ✓ LA crossover DST before midnight GMT should have 2 events (2380 ms)
    Exdate: SYD crossover DST before midnight GMT
      ✕ LA crossover DST before midnight GMT should have 2 events (20042 ms)
    Exdate: SYD crossover DST at midnight GMT local STD
      ✕ LA crossover DST before midnight GMT should have 2 events (20037 ms)
    Exdate: SYD crossover DST at midnight GMT local DST
      ✕ SYD crossover DST at midnight GMT local DST should have 2 events (20047 ms)
    sliceMultiDayEvents
      ✓ Issue #3452 split multiday in Europe (2595 ms)

  ● Calendar module › Test css classes › has css class yesterday

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      33 |      });
      34 |
    > 35 |      it("has css class yesterday", async () => {
         |      ^
      36 |          await helpers.startApplication("tests/configs/modules/calendar/custom.js", "02 Jan 2030 12:30:00 GMT");
      37 |          await expect(doTest(".yesterday")).resolves.toBe(true);
      38 |      });

      at it (tests/electron/modules/calendar_spec.js:35:3)
      at describe (tests/electron/modules/calendar_spec.js:29:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Test css classes › has css class today

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      38 |      });
      39 |
    > 40 |      it("has css class today", async () => {
         |      ^
      41 |          await helpers.startApplication("tests/configs/modules/calendar/custom.js", "01 Jan 2030 12:30:00 GMT");
      42 |          await expect(doTest(".today")).resolves.toBe(true);
      43 |      });

      at it (tests/electron/modules/calendar_spec.js:40:3)
      at describe (tests/electron/modules/calendar_spec.js:29:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Test css classes › has css class tomorrow

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      43 |      });
      44 |
    > 45 |      it("has css class tomorrow", async () => {
         |      ^
      46 |          await helpers.startApplication("tests/configs/modules/calendar/custom.js", "31 Dec 2029 12:30:00 GMT");
      47 |          await expect(doTest(".tomorrow")).resolves.toBe(true);
      48 |      });

      at it (tests/electron/modules/calendar_spec.js:45:3)
      at describe (tests/electron/modules/calendar_spec.js:29:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Test css classes › has css class dayAfterTomorrow

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      48 |      });
      49 |
    > 50 |      it("has css class dayAfterTomorrow", async () => {
         |      ^
      51 |          await helpers.startApplication("tests/configs/modules/calendar/custom.js", "30 Dec 2029 12:30:00 GMT");
      52 |          await expect(doTest(".dayAfterTomorrow")).resolves.toBe(true);
      53 |      });

      at it (tests/electron/modules/calendar_spec.js:50:3)
      at describe (tests/electron/modules/calendar_spec.js:29:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Exdate: LA crossover DST before midnight GMT › LA crossover DST before midnight GMT should have 2 events

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      83 |   */
      84 |  describe("Exdate: LA crossover DST before midnight GMT", () => {
    > 85 |      it("LA crossover DST before midnight GMT should have 2 events", async () => {
         |      ^
      86 |          await helpers.startApplication("tests/configs/modules/calendar/exdate_la_before_midnight.js", "19 Oct 2023 12:30:00 GMT-07:00", ["js/electron.js"], "America/Los_Angeles");
      87 |          await expect(doTestCount()).resolves.toBe(2);
      88 |      });

      at it (tests/electron/modules/calendar_spec.js:85:3)
      at describe (tests/electron/modules/calendar_spec.js:84:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Exdate: SYD crossover DST before midnight GMT › LA crossover DST before midnight GMT should have 2 events

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      113 |      */
      114 |     describe("Exdate: SYD crossover DST before midnight GMT", () => {
    > 115 |         it("LA crossover DST before midnight GMT should have 2 events", async () => {
          |         ^
      116 |             await helpers.startApplication("tests/configs/modules/calendar/exdate_syd_before_midnight.js", "14 Sep 2023 12:30:00 GMT+10:00", ["js/electron.js"], "Australia/Sydney");
      117 |             await expect(doTestCount()).resolves.toBe(2);
      118 |         });

      at it (tests/electron/modules/calendar_spec.js:115:3)
      at describe (tests/electron/modules/calendar_spec.js:114:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Exdate: SYD crossover DST at midnight GMT local STD › LA crossover DST before midnight GMT should have 2 events

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      119 |     });
      120 |     describe("Exdate: SYD crossover DST at midnight GMT local STD", () => {
    > 121 |         it("LA crossover DST before midnight GMT should have 2 events", async () => {
          |         ^
      122 |             await helpers.startApplication("tests/configs/modules/calendar/exdate_syd_at_midnight_std.js", "14 Sep 2023 12:30:00 GMT+10:00", ["js/electron.js"], "Australia/Sydney");
      123 |             await expect(doTestCount()).resolves.toBe(2);
      124 |         });

      at it (tests/electron/modules/calendar_spec.js:121:3)
      at describe (tests/electron/modules/calendar_spec.js:120:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

  ● Calendar module › Exdate: SYD crossover DST at midnight GMT local DST › SYD crossover DST at midnight GMT local DST should have 2 events

    thrown: "Exceeded timeout of 20000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      125 |     });
      126 |     describe("Exdate: SYD crossover DST at midnight GMT local DST", () => {
    > 127 |         it("SYD crossover DST at midnight GMT local DST should have 2 events", async () => {
          |         ^
      128 |             await helpers.startApplication("tests/configs/modules/calendar/exdate_syd_at_midnight_dst.js", "14 Sep 2023 12:30:00 GMT+10:00", ["js/electron.js"], "Australia/Sydney");
      129 |             await expect(doTestCount()).resolves.toBe(2);
      130 |         });

      at it (tests/electron/modules/calendar_spec.js:127:3)
      at describe (tests/electron/modules/calendar_spec.js:126:2)
      at Object.describe (tests/electron/modules/calendar_spec.js:3:1)

 FAIL   electron  tests/electron/modules/compliments_spec.js (10.609 s)
  Compliments module
    parts of days
      ✓ Morning compliments for that part of day (1158 ms)
      ✕ Afternoon show Compliments for that part of day (1140 ms)
      ✕ Evening show Compliments for that part of day (1193 ms)
    Feature date in compliments module
      Set date and empty compliments for anytime, morning, evening and afternoon
        ✓ shows happy new year compliment on new years day (1073 ms)
      Test only custom date events shown with new property
        ✓ shows 'Special day message' on May 6 (1271 ms)
      Test all date events shown without new property
        ✓ shows 'any message' on May 6 (1054 ms)
      Test only custom cron date event shown with new property
        ✕ shows 'any message' on May 6 (1284 ms)
      Test any event shows after time window
        ✓ shows 'any message' on May 6 (1068 ms)
      Test any event shows different day
        ✓ shows 'any message' on May 5 (1135 ms)

  ● Compliments module › parts of days › Afternoon show Compliments for that part of day

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toContain(expected) // indexOf·
    Expected value: "Hi"
    Received array: ["Hello", "Good Afternoon", "Afternoon test"]]

      28 |      it("Afternoon show Compliments for that part of day", async () => {
      29 |          await helpers.startApplication("tests/configs/modules/compliments/compliments_parts_day.js", "01 Oct 2022 15:00:00 GMT");
    > 30 |          await expect(doTest(["Hello", "Good Afternoon", "Afternoon test"])).resolves.toBe(true);
         |                ^
      31 |      });
      32 |
      33 |      it("Evening show Compliments for that part of day", async () => {

      at expect (node_modules/expect/build/index.js:113:15)
      at Object.expect (tests/electron/modules/compliments_spec.js:30:10)

  ● Compliments module › parts of days › Evening show Compliments for that part of day

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toContain(expected) // indexOf·
    Expected value: "Good Morning"
    Received array: ["Hello There", "Good Evening", "Evening test"]]

      33 |      it("Evening show Compliments for that part of day", async () => {
      34 |          await helpers.startApplication("tests/configs/modules/compliments/compliments_parts_day.js", "01 Oct 2022 20:00:00 GMT");
    > 35 |          await expect(doTest(["Hello There", "Good Evening", "Evening test"])).resolves.toBe(true);
         |                ^
      36 |      });
      37 |  });
      38 |

      at expect (node_modules/expect/build/index.js:113:15)
      at Object.expect (tests/electron/modules/compliments_spec.js:35:10)

  ● Compliments module › Feature date in compliments module › Test only custom cron date event shown with new property › shows 'any message' on May 6

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toContain(expected) // indexOf·
    Expected value: "just a test"
    Received array: ["just pub time"]]

      62 |          it("shows 'any message' on May 6", async () => {
      63 |              await helpers.startApplication("tests/configs/modules/compliments/compliments_cron_entry.js", "06 May 2022 17:03:00 GMT");
    > 64 |              await expect(doTest(["just pub time"])).resolves.toBe(true);
         |                    ^
      65 |          });
      66 |      });
      67 |

      at expect (node_modules/expect/build/index.js:113:15)
      at Object.expect (tests/electron/modules/compliments_spec.js:64:11)

 FAIL   electron  tests/electron/modules/weather_spec.js
  Weather module
    Current weather with sunrise
      ✓ should render sunrise (302 ms)
    Current weather with sunset
      ✕ should render sunset (97 ms)

  ● Weather module › Current weather with sunset › should render sunset

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toBe(expected) // Object.is equality·
    Expected: "3:45 pm"
    Received: "7:00 am"]

      25 |
      26 |      it("should render sunset", async () => {
    > 27 |          await expect(weatherHelper.getText(".weather .normal.medium span:nth-child(4)", "3:45 pm")).resolves.toBe(true);
         |                ^
      28 |      });
      29 |  });
      30 | });

      at expect (node_modules/expect/build/index.js:113:15)
      at Object.expect (tests/electron/modules/weather_spec.js:27:10)

Test Suites: 3 failed, 1 passed, 4 total
Tests:       12 failed, 15 passed, 27 total
sdetweil commented 3 weeks ago

should we put out a point release on package.json i will fix my installer in the morning i will also update package.json

khassel commented 3 weeks ago

I installed this new raspian and there is no node preinstalled.

pi@pi4-argon:~ $ node -v
-bash: node: command not found

If I install with apt I get an outdated

pi@pi4-argon:~ $ node -v
v18.19.0
sdetweil commented 3 weeks ago

what image did uninstall? i did 64 bit full used the imager for pi4

khassel commented 3 weeks ago

same

pi@pi4-argon:~ $ uname -a
Linux pi4-argon 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux
pi@pi4-argon:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
sdetweil commented 3 weeks ago

false alarm user didn't show me all the info .. they installed and got node 23 manually..

then did npm install, which failed..

sdetweil commented 3 weeks ago

i fixed my script, but won't change it back..

now to find where they save the screensaver info on new bookworm as the wayfire.ini is gone and labwc doesn't do it natively

khassel commented 3 weeks ago

so can we close this?

sdetweil commented 3 weeks ago

yes