73 lines
1.7 KiB
JavaScript
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"
|
|
}
|
|
)
|
|
})
|