/ src / hooks / setup-done-detection.test.ts
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  })