mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-30 01:38:55 +00:00
30559048fd
* FIX - preserve LB custom app lifecycle * FIX - reset LB export aliases before startup * FIX - report competing custom app providers * FIX - identify LB app frames as live NUI * FIX - complete LB custom app compatibility * FIX - provide LB PicChat runtime exports * FIX - route LB PicChat through Sky Phone * FIX - return cached LB equipped phone number * FIX - harden PicChat compatibility migration * ENH - complete modular phone provider and Creator APIs * DOC - document the Sky Phone Creator API --------- Co-authored-by: DerEchteAlec <bycraky@gmail.com> Co-authored-by: DerEchteAlec <alec.schitzkat@luwan.io>
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import { readFileSync } from 'node:fs'
|
|
import { join } from 'node:path'
|
|
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
const rootDirectory = join(import.meta.dirname, '..')
|
|
const appSource = readFileSync(join(rootDirectory, 'src/App.vue'), 'utf8')
|
|
const navigationSource = readFileSync(
|
|
join(rootDirectory, '../sky_phone/source/client/navigation.lua'),
|
|
'utf8',
|
|
)
|
|
|
|
describe('neutral phone navigation contract', () => {
|
|
it('synchronizes installed renderer apps before acknowledging an opened phone', () => {
|
|
expect(appSource).toContain("return nuiCall('navigation:state'")
|
|
expect(appSource).toContain(
|
|
"void syncNavigationState().then(() => nuiCall('ui:opened'))",
|
|
)
|
|
expect(navigationSource).toContain(
|
|
'RegisterNUICallback("navigation:state"',
|
|
)
|
|
})
|
|
|
|
it('routes only installed apps and closes only the requested current app', () => {
|
|
expect(appSource).toContain("event.data?.type === 'navigation:open-app'")
|
|
expect(appSource).toContain('appStore.isInstalled(data.appId)')
|
|
expect(appSource).toContain("event.data?.type === 'navigation:close-app'")
|
|
expect(appSource).toContain('currentApp === data.appId')
|
|
expect(navigationSource).toContain('if not installed_apps[normalized_app_id] then')
|
|
expect(navigationSource).toContain('if current_app_id ~= normalized_app_id then')
|
|
})
|
|
})
|