mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-29 17:28:56 +00:00
62 lines
2.5 KiB
TypeScript
62 lines
2.5 KiB
TypeScript
import { readFileSync } from 'node:fs'
|
|
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
const source = readFileSync(
|
|
new URL('./PhoneSetupAssistant.vue', import.meta.url),
|
|
'utf8',
|
|
)
|
|
|
|
describe('PhoneSetupAssistant contract', () => {
|
|
it('uses first-party controls and exposes the complete setup journey', () => {
|
|
expect(source).not.toContain("from 'konsta/vue'")
|
|
expect(source).toContain('PhonePasscode')
|
|
expect(source).toContain('step === 1')
|
|
expect(source).toContain('step === 8')
|
|
expect(source).toContain("['performance', 'ultimate']")
|
|
expect(source).toContain('setup-mode-preview__card--front')
|
|
expect(source).toContain('setup-mode-preview__card--back')
|
|
expect(source).toContain('WALLPAPER_IDS')
|
|
expect(source).toContain('setAllAppNotifications')
|
|
expect(source).toContain('appStore.claimApp')
|
|
expect(source).toContain('await phone.completeSetup()')
|
|
expect(source).toMatch(
|
|
/if \(step\.value === 8\) \{[\s\S]*void finish\(\)[\s\S]*return/,
|
|
)
|
|
expect(source).toContain(':disabled="setupCompleteBusy"')
|
|
expect(source).toContain("phone.t('Setup.ready.saveFailed')")
|
|
})
|
|
|
|
it('persists progress and supports resuming or moving backward', () => {
|
|
expect(source).toContain('phone.preferences.settings.setupStep')
|
|
expect(source).toContain('phone.setSetupStep(step.value)')
|
|
expect(source).toContain('@click="moveTo(step - 1)"')
|
|
})
|
|
|
|
it('keeps the development skip control away from setup progress', () => {
|
|
expect(source).toContain('v-if="showDevelopmentSkip && step === 0"')
|
|
})
|
|
|
|
it('follows the selected system appearance throughout setup', () => {
|
|
expect(source).toContain(
|
|
'(appearanceSelected || step > 4) && phone.isDarkMode',
|
|
)
|
|
expect(source).toContain("emit('appearanceSelected', true)")
|
|
expect(source).toContain("phone.setPreference('appearanceMode', 'light')")
|
|
expect(source).toContain('.setup-assistant--dark.setup-assistant--step-0')
|
|
expect(source).toContain('--setup-background: #000000')
|
|
expect(source).toContain('background: var(--setup-background)')
|
|
})
|
|
|
|
it('applies the selected graphics mode to the setup experience immediately', () => {
|
|
expect(source).toContain("'setup-assistant--performance':")
|
|
expect(source).toContain("'setup-assistant--ultimate':")
|
|
expect(source).toContain(
|
|
'.setup-assistant--performance .setup-forward-enter-active',
|
|
)
|
|
expect(source).toContain(
|
|
'.setup-assistant--ultimate .setup-mode-stack button',
|
|
)
|
|
})
|
|
})
|