From e3db33ce96cd08599696076f946c30bdc7b00412 Mon Sep 17 00:00:00 2001 From: DerEchteAlec Date: Mon, 17 Aug 2026 05:14:46 +0200 Subject: [PATCH] CLN - normalize frontend file contracts --- frontend/src/config/apps.ts | 2 +- .../src/views/apps/CameraApp.contract.test.ts | 20 ++++++++++++++----- .../views/apps/NotesApp.menu.contract.test.ts | 5 ++++- ...test.ts => WeazelNewsApp.contract.test.ts} | 2 +- ...{weazel-news-app.vue => WeazelNewsApp.vue} | 0 5 files changed, 21 insertions(+), 8 deletions(-) rename frontend/src/views/apps/{weazel-news-app.contract.test.ts => WeazelNewsApp.contract.test.ts} (99%) rename frontend/src/views/apps/{weazel-news-app.vue => WeazelNewsApp.vue} (100%) diff --git a/frontend/src/config/apps.ts b/frontend/src/config/apps.ts index bf5eeff..36e622b 100644 --- a/frontend/src/config/apps.ts +++ b/frontend/src/config/apps.ts @@ -106,7 +106,7 @@ export const PHONE_APPS = shallowReactive([ { category: 'social', component: markRaw( - defineAsyncComponent(() => import('@/views/apps/weazel-news-app.vue')), + defineAsyncComponent(() => import('@/views/apps/WeazelNewsApp.vue')), ), dockOrder: null, gridOrder: 29, diff --git a/frontend/src/views/apps/CameraApp.contract.test.ts b/frontend/src/views/apps/CameraApp.contract.test.ts index 8b1d617..c0bee65 100644 --- a/frontend/src/views/apps/CameraApp.contract.test.ts +++ b/frontend/src/views/apps/CameraApp.contract.test.ts @@ -14,6 +14,10 @@ const cameraClient = readFileSync( new URL('../../../../sky_phone/source/client/camera.lua', import.meta.url), 'utf8', ) +const focusClient = readFileSync( + new URL('../../../../sky_phone/source/client/focus.lua', import.meta.url), + 'utf8', +) const cameraConfig = readFileSync( new URL('../../../../sky_phone/config/config.lua', import.meta.url), 'utf8', @@ -39,7 +43,9 @@ describe('Camera app controls', () => { expect(cameraView).not.toContain('camera-zoom-slider') expect(cameraView).not.toContain('type="range"') expect(cameraView).toContain('@wheel.prevent.stop="zoomWithWheel"') - expect(cameraView).toContain('Math.min(120, event.deltaY * deltaMultiplier)') + expect(cameraView).toContain( + 'Math.min(120, event.deltaY * deltaMultiplier)', + ) expect(cameraView).toContain('wheelDelta * 0.00075') expect(cameraView).toContain("message.type === 'camera:zoom'") expect(cameraClient).toContain('mouse_wheel_zoom_step = 0.08') @@ -69,11 +75,13 @@ describe('Camera app controls', () => { expect(cameraClient).toContain('INPUT_LOOK_UD') expect(cameraClient).toContain('first_person_view_mode = 4') expect(cameraClient).toContain( - 'SetFollowPedCamViewMode(first_person_view_mode)', + 'local view_mode = camera_state.front_camera and front_camera_view_mode or first_person_view_mode', ) expect(cameraClient).toContain('SetFollowVehicleCamViewMode(view_mode)') expect(cameraClient).toContain('SetFollowPedCamViewMode(view_mode)') - expect(cameraClient).toMatch(/while camera_state\.active do[\s\S]*apply_camera_view\(\)/) + expect(cameraClient).toMatch( + /while camera_state\.active do[\s\S]*apply_camera_view\(\)/, + ) expect(cameraClient).not.toContain('next_view_apply') expect(cameraClient).not.toContain('ultrawide_camera_handle') expect(cameraClient).not.toContain('ensure_ultrawide_camera') @@ -91,9 +99,11 @@ describe('Camera app controls', () => { expect(cameraClient).toContain('local front_camera_fov = 32.0') expect(cameraClient).toContain('local front_camera_distance = 1.05') expect(cameraClient).toContain('local head_position = GetPedBoneCoords') - expect(cameraClient).toContain('local dot = (to_camera.x * forward_vector.x)') - expect(cameraClient).toContain('front_camera_target_height') expect(cameraClient).toContain( + 'local dot = (to_camera.x * forward_vector.x)', + ) + expect(cameraClient).toContain('front_camera_target_height') + expect(focusClient).toContain( 'return { block_game = false, block_look = false, cursor = false, focused = true, game_input = true, keep_input = true }', ) expect(cameraClient).toContain('SetCamCoord(') diff --git a/frontend/src/views/apps/NotesApp.menu.contract.test.ts b/frontend/src/views/apps/NotesApp.menu.contract.test.ts index 0a903d9..383b8f1 100644 --- a/frontend/src/views/apps/NotesApp.menu.contract.test.ts +++ b/frontend/src/views/apps/NotesApp.menu.contract.test.ts @@ -2,7 +2,10 @@ import { readFileSync } from 'node:fs' import { describe, expect, it } from 'vitest' -const source = readFileSync(new URL('./NotesApp.vue', import.meta.url), 'utf8') +const source = readFileSync( + new URL('./NotesApp.vue', import.meta.url), + 'utf8', +).replace(/\r\n/g, '\n') const menuSource = source.slice( source.indexOf('') + ''.length, diff --git a/frontend/src/views/apps/weazel-news-app.contract.test.ts b/frontend/src/views/apps/WeazelNewsApp.contract.test.ts similarity index 99% rename from frontend/src/views/apps/weazel-news-app.contract.test.ts rename to frontend/src/views/apps/WeazelNewsApp.contract.test.ts index 592f2d8..bf93bf8 100644 --- a/frontend/src/views/apps/weazel-news-app.contract.test.ts +++ b/frontend/src/views/apps/WeazelNewsApp.contract.test.ts @@ -3,7 +3,7 @@ import { readFileSync } from 'node:fs' import { describe, expect, it } from 'vitest' const source = readFileSync( - new URL('./weazel-news-app.vue', import.meta.url), + new URL('./WeazelNewsApp.vue', import.meta.url), 'utf8', ) diff --git a/frontend/src/views/apps/weazel-news-app.vue b/frontend/src/views/apps/WeazelNewsApp.vue similarity index 100% rename from frontend/src/views/apps/weazel-news-app.vue rename to frontend/src/views/apps/WeazelNewsApp.vue