setup-done-detection.test.ts
1 import assert from 'node:assert/strict' 2 import { test } from 'node:test' 3 import { resolveSetupDone } from './setup-done-detection' 4 5 test('resolveSetupDone returns false when both fetches failed so the wizard is shown', () => { 6 // When both API calls fail we cannot determine setup state — default to 7 // showing the wizard so the user doesn't land in a broken app. 8 assert.equal(resolveSetupDone({}, {}, true), false) 9 }) 10 11 test('resolveSetupDone returns true when setupCompleted is true', () => { 12 assert.equal(resolveSetupDone({ setupCompleted: true }, {}, false), true) 13 }) 14 15 test('resolveSetupDone returns true when credentials exist', () => { 16 assert.equal(resolveSetupDone({}, { 'cred-1': { id: '1' } }, false), true) 17 }) 18 19 test('resolveSetupDone returns false when no creds and not completed', () => { 20 assert.equal(resolveSetupDone({}, {}, false), false) 21 }) 22 23 test('resolveSetupDone returns false when setupCompleted is undefined and creds empty', () => { 24 assert.equal(resolveSetupDone({ setupCompleted: undefined }, {}, false), false) 25 }) 26 27 test('resolveSetupDone returns true when both creds and setupCompleted present', () => { 28 assert.equal(resolveSetupDone({ setupCompleted: true }, { key: {} }, false), true) 29 })