who_need_help/assets/js/native_push_state.test.mjs

73 lines
1.7 KiB
JavaScript

import assert from "node:assert/strict"
import test from "node:test"
import {resolveNativePushState} from "./native_push_state.mjs"
test("a configured registration is active only for the current account", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "device-current",
activeDeviceIds: ["device-current", "device-other"]
}),
{
configured: true,
registered: true,
stale: false,
serverDeviceId: "device-current"
}
)
})
test("a device registered to another account is stale", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "device-previous-account",
activeDeviceIds: ["device-current-account"]
}),
{
configured: true,
registered: false,
stale: true,
serverDeviceId: "device-previous-account"
}
)
})
test("a requested token without a server device remains eligible for registration", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "",
activeDeviceIds: []
}),
{
configured: true,
registered: false,
stale: false,
serverDeviceId: ""
}
)
})
test("an unconfigured Android client is neither registered nor stale", () => {
assert.deepEqual(
resolveNativePushState({
configured: false,
requested: true,
serverDeviceId: "device-current",
activeDeviceIds: ["device-current"]
}),
{
configured: false,
registered: false,
stale: false,
serverDeviceId: "device-current"
}
)
})