Files
sky_phone/frontend/src/components/PhoneLockScreen.contract.test.ts
T
Leon.Schmidt 14fcfe384d ADD - separate Home and Lock wallpapers
Store independent Home Screen and Lock Screen wallpaper selections, preserve legacy preferences, and route gallery or camera picks to the selected destination. Add the Settings segmented selector and contract coverage.
2026-08-15 20:04:45 +02:00

49 lines
2.0 KiB
TypeScript

import { readFileSync } from 'node:fs'
import { describe, expect, it } from 'vitest'
const styles = readFileSync(
new URL('../assets/main.css', import.meta.url),
'utf8',
)
const source = readFileSync(
new URL('./PhoneLockScreen.vue', import.meta.url),
'utf8',
)
describe('PhoneLockScreen notification theme contract', () => {
it('uses the dedicated Lock Screen wallpaper preference', () => {
expect(source).toContain('settings.lockWallpaperImageUrl')
expect(source).toContain('settings.lockWallpaper')
expect(source).not.toContain('settings.wallpaperImageUrl')
})
it('uses explicit light and dark notification material tokens', () => {
expect(styles).toMatch(
/\.lock-screen\s*\{[^}]*--lock-notification-background:\s*rgb\(38 36 40 \/ 76%\)[^}]*--lock-notification-color:\s*#fff/s,
)
expect(styles).toMatch(
/\.phone-app--light \.lock-screen\s*\{[^}]*--lock-notification-background:\s*rgb\(247 247 248 \/ 82%\)[^}]*--lock-notification-color:\s*#111[^}]*--lock-notification-muted:\s*rgb\(0 0 0 \/ 55%\)/s,
)
})
it('applies the adaptive tokens to cards, metadata, focus and clear all', () => {
expect(styles).toMatch(
/\.lock-screen__notification\s*\{[^}]*color:\s*var\(--lock-notification-color\)[^}]*background-color:\s*var\(--lock-notification-background\)[^}]*text-shadow:\s*var\(--lock-notification-text-shadow\)/s,
)
expect(styles).toMatch(
/\.lock-screen__notifications-clear\s*\{[^}]*color:\s*var\(--lock-notification-color\)[^}]*background:\s*var\(--lock-notification-clear-background\)/s,
)
expect(styles).toContain('color: var(--lock-notification-muted);')
expect(styles).toContain(
'outline: 2px solid var(--lock-notification-focus);',
)
})
it('uses the solid mode material for the performance clear action', () => {
expect(styles).toMatch(
/\.phone-app--performance \.lock-screen\s*\{[^}]*--lock-notification-clear-background:\s*var\(--phone-performance-glass\)/s,
)
})
})