import { describe, it, expect, vi, beforeEach } from 'vitest' import { useGameURL } from '../use-game-url' import { IFrameGameURLEnum } from '#lib/enums' import { useUser } from '#lib/composables' import { useNuxtApp, useRuntimeConfig } from 'nuxt/app' const MOCK_TOKEN = 'test-mock-token' const MOCK_PG_TOKEN = 'test-mock-gp-token' const MOCK_MOBILE_LODE_URL = 'https://m-web-sg.apixld.com/?style=red&token=' const MOCK_TP_KENO_URL = 'https://keno.gamingon.net/' const MOCK_TP_NUMBERGAME_URL = 'https://nbg.apixld.com/' const MOCK_QUAYSO_LAS_VEGAS_URL = 'https://tablegame.quayso.club/' const MOCK_QUAYSO_CYPER_URL = 'https://lottery.quayso.club/' const MOCK_LODE_SIEUTOC_MOBILE_URL = 'https://m-web-rng.apixld.com/game/60/?token=' const mockNadal = { game: { gameLauncher: vi.fn().mockResolvedValue(''), }, } vi.mock('nuxt/app', () => ({ useRoute: vi.fn(() => ({ fullpath: 'fullPath', })), useRuntimeConfig: vi.fn().mockReturnValue({ public: { LODE_MOBILE_URL: '', }, }), useCookie: vi.fn().mockReturnValue(''), })) vi.mock('#lib/composables', () => ({ useNadal: () => mockNadal, useUser: vi.fn().mockReturnValue({ subBalance: { value: 0, }, user: { value: {}, }, denyGameIds: { value: [], }, token: { value: '', }, gpToken: { value: '', }, memberId: { value: '1', }, }), useGameToast: vi.fn().mockReturnValue({}), })) vi.mock('#app', () => ({ useDevice: vi.fn().mockReturnValue({ isMobile: true }), })) describe('useGameURL mobile', () => { beforeEach(() => { vi.clearAllMocks() useUser().gpToken.value = MOCK_PG_TOKEN useUser().token.value = MOCK_TOKEN }) describe('getGameUrlIframe mobile', () => { const { getGameUrlIframe } = useGameURL() it('should get correct URL of lode', () => { useRuntimeConfig().public.LODE_MOBILE_URL = MOCK_MOBILE_LODE_URL expect(getGameUrlIframe(IFrameGameURLEnum.LODE)).toEqual( `${MOCK_MOBILE_LODE_URL}${MOCK_PG_TOKEN}`, ) }) it('should get correct URL of lode sieu toc', () => { useRuntimeConfig().public.LODE_SIEUTOC_MOBILE_URL = MOCK_LODE_SIEUTOC_MOBILE_URL expect(getGameUrlIframe(IFrameGameURLEnum.LODE_SIEUTOC)).toEqual( `${MOCK_LODE_SIEUTOC_MOBILE_URL}${MOCK_PG_TOKEN}`, ) }) it('should get correct URL of TP keno', () => { useRuntimeConfig().public.TP_KENO_URL = MOCK_TP_KENO_URL const params = new URLSearchParams({ operator_id: '2000', lang: 'vi', currency: 'VND', token: MOCK_PG_TOKEN, is_mobile: '1', }) expect(getGameUrlIframe(IFrameGameURLEnum.TP_KENO)).toEqual( `${MOCK_TP_KENO_URL}?${params.toString()}`, ) }) it('should get correct URL of TP number game', () => { useRuntimeConfig().public.TP_NUMBERGAME_URL = MOCK_TP_NUMBERGAME_URL const params = new URLSearchParams({ operator_id: '1000', lang: 'vi', currency: 'VND', is_mobile: '1', token: MOCK_PG_TOKEN, }) expect(getGameUrlIframe(IFrameGameURLEnum.TP_NUMBER_GAME)).toEqual( `${MOCK_TP_NUMBERGAME_URL}?${params.toString()}`, ) }) it('should get correct URL of lottery lasvegas', () => { useRuntimeConfig().public.QUAYSO_LAS_VEGAS_URL = MOCK_QUAYSO_LAS_VEGAS_URL expect(getGameUrlIframe(IFrameGameURLEnum.LOTTERY_LAS_VEGAS)).toEqual( `${MOCK_QUAYSO_LAS_VEGAS_URL}?token=${MOCK_PG_TOKEN}`, ) }) it('should get correct URL of lottery cyber', () => { useRuntimeConfig().public.QUAYSO_CYPER_URL = MOCK_QUAYSO_CYPER_URL expect(getGameUrlIframe(IFrameGameURLEnum.LOTTERY_CYBER_PUNK)).toEqual( `${MOCK_QUAYSO_CYPER_URL}?token=${MOCK_PG_TOKEN}`, ) }) }) })