import { readFileSync } from 'node:fs' import { describe, expect, it } from 'vitest' const source = readFileSync(new URL('./MailApp.vue', import.meta.url), 'utf8') const editorSource = readFileSync( new URL('../../components/MailMarkdownEditor.vue', import.meta.url), 'utf8', ) const mailServerSource = readFileSync( new URL('../../../../sky_phone/source/server/mail.lua', import.meta.url), 'utf8', ) const migrationSource = readFileSync( new URL( '../../../../sky_phone/source/server/db_migrate.lua', import.meta.url, ), 'utf8', ) const clientSource = readFileSync( new URL('../../../../sky_phone/source/client/nui_server_bridge.lua', import.meta.url), 'utf8', ) describe('MailApp Sky UI contract', () => { it('uses Sky navigation for logout and mailbox back actions', () => { expect(source).toContain('class="mail-navbar mail-folders-navbar"') expect(source).toContain(':aria-label="phone.t(\'Apps.mail.logout\')"') expect(source).toContain(' { const foldersStart = source.indexOf('v-else-if="screen === \'folders\'"') const foldersEnd = source.indexOf( 'v-else-if="screen === \'list\'"', foldersStart, ) const folders = source.slice(foldersStart, foldersEnd) const left = folders.slice( folders.indexOf('', folders.indexOf('