Skip to content

[Bug] Calendar test "Recurring event per timezone" fails depending on used timezone #3928

Description

@khassel

Environment

MagicMirror² version: develop

Which start option are you using?

node --run server

Are you using PM2?

No

Module

None

Have you tried disabling other modules?

  • Yes
  • No

Have you searched if someone else has already reported the issue on the forum or in the issues?

  • Yes

What did you do?

I used a stripped version of tests/e2e/modules/calendar_spec.js containing only the test for "Recurring event per timezone"

node@d34bb2250622:/opt/magic_mirror$ export TZ=America/Chicago
node@d34bb2250622:/opt/magic_mirror$ npx jest tests/e2e/modules/calendar_spec.js
 PASS   e2e  tests/e2e/modules/calendar_spec.js (39.89 s)
  Calendar module
    Recurring event per timezone
      ✓ should contain text "Mar 25th" in timezone UTC 12 (1307 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 11 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 10 (1209 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 9 (1204 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 8 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 7 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 6 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 5 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 4 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 3 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 2 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 1 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 0 (1206 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -1 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -2 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -3 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -4 (1302 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -5 (1198 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -6 (1201 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -7 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -8 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -9 (1204 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -10 (1201 ms)
      ✓ should contain text "Mar 25th" in timezone UTC -11 (1306 ms)
node@d34bb2250622:/opt/magic_mirror$ export TZ=Australia/West
node@d34bb2250622:/opt/magic_mirror$ npx jest tests/e2e/modules/calendar_spec.js
 FAIL   e2e  tests/e2e/modules/calendar_spec.js (39.544 s)
  Calendar module
    Recurring event per timezone
      ✓ should contain text "Mar 25th" in timezone UTC 12 (1310 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 11 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 10 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 9 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 8 (1202 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 7 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 6 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 5 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 4 (1209 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 3 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 2 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 1 (1210 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 0 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -1 (1202 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -2 (1207 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -3 (1207 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -4 (1303 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -5 (1202 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -6 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -7 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -8 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -9 (1202 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -10 (1200 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -11 (1205 ms)

  ● Calendar module › Recurring event per timezone › should contain text "Mar 25th" in timezone UTC 7

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toContain(expected) // indexOf·
    Expected substring: "Mar 25th"
    Received string:    "undefinedBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24th"]
node@d34bb2250622:/opt/magic_mirror$ export TZ=Europe/Berlin
node@d34bb2250622:/opt/magic_mirror$ npx jest tests/e2e/modules/calendar_spec.js
 FAIL   e2e  tests/e2e/modules/calendar_spec.js (39.651 s)
  Calendar module
    Recurring event per timezone
      ✓ should contain text "Mar 25th" in timezone UTC 12 (1308 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 11 (1204 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 10 (1204 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 9 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 8 (1199 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 7 (1206 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 6 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 5 (1205 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 4 (1212 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 3 (1202 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 2 (1203 ms)
      ✓ should contain text "Mar 25th" in timezone UTC 1 (1203 ms)
      ✕ should contain text "Mar 25th" in timezone UTC 0 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -1 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -2 (1207 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -3 (1205 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -4 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -5 (1203 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -6 (1204 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -7 (1308 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -8 (1206 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -9 (1215 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -10 (1206 ms)
      ✕ should contain text "Mar 25th" in timezone UTC -11 (1206 ms)

  ● Calendar module › Recurring event per timezone › should contain text "Mar 25th" in timezone UTC 0

    expect(received).resolves.toBe()

    Received promise rejected instead of resolved
    Rejected to value: [Error: expect(received).toContain(expected) // indexOf·
    Expected substring: "Mar 25th"
    Received string:    "undefinedBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24thBirthdayMar 24th"]

What did you expect to happen?

This test should produce the same output (independent of TZ).

What actually happened?

see above.

Additional comments

No response

Participation

  • I am willing to submit a pull request for this change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions