import { describe, expect, test } from 'vitest'; import { type PlatformCreationLaunchTarget, resolvePlatformCreationLaunchIntent, } from './platformCreationLaunchModel'; import { EDUTAINMENT_HIDDEN_MESSAGE } from './platformEdutainmentVisibility'; describe('platformCreationLaunchModel', () => { test('keeps airp as a placeholder noop before prepare', () => { expect( resolvePlatformCreationLaunchIntent({ type: 'airp', isBabyObjectMatchVisible: true, }), ).toEqual({ type: 'noop', shouldPrepare: false, reason: 'placeholder', }); }); test('blocks hidden baby object match after prepare', () => { expect( resolvePlatformCreationLaunchIntent({ type: 'baby-object-match', isBabyObjectMatchVisible: false, }), ).toEqual({ type: 'blocked', shouldPrepare: true, message: EDUTAINMENT_HIDDEN_MESSAGE, }); }); test('resolves known creation launch targets', () => { const targets: PlatformCreationLaunchTarget[] = [ 'rpg', 'big-fish', 'match3d', 'square-hole', 'jump-hop', 'wooden-fish', 'puzzle', 'bark-battle', 'visual-novel', 'baby-object-match', ]; targets.forEach((target) => { expect( resolvePlatformCreationLaunchIntent({ type: target, isBabyObjectMatchVisible: true, }), ).toEqual({ type: 'launch', shouldPrepare: true, target, }); }); }); test('keeps unknown creation type as a prepared noop', () => { expect( resolvePlatformCreationLaunchIntent({ type: 'unknown-template', isBabyObjectMatchVisible: true, }), ).toEqual({ type: 'noop', shouldPrepare: true, reason: 'unknown', }); }); });