diff --git a/resources/assets/tests/__mocks__/skinview3d.ts b/resources/assets/tests/__mocks__/skinview3d.ts index 37f8a306..463512b0 100644 --- a/resources/assets/tests/__mocks__/skinview3d.ts +++ b/resources/assets/tests/__mocks__/skinview3d.ts @@ -2,51 +2,61 @@ /* eslint-disable max-classes-per-file */ import type { PlayerObject, SkinObject, CapeObject } from 'skinview3d' -export class SkinViewer { - disposed: boolean - - skinUrl: string - - capeUrl: string - - animationPaused: boolean - - camera: { position: { z: number } } +export class FXAASkinViewer { + disposed = false + background = '' + animations = new RootAnimation() + animationPaused = false playerObject: PlayerObject constructor() { - this.skinUrl = '' - this.capeUrl = '' - this.disposed = false this.animationPaused = false - this.camera = { - position: { - z: 0, - }, - } this.playerObject = { skin: {} as SkinObject, cape: {} as CapeObject, } as PlayerObject } + loadSkin() {} + loadCape() {} + resetCape() {} + loadBackground() {} + dispose() { this.disposed = true } } -export class CompositeAnimation { - add(animation: any) { +export class RootAnimation { + paused = false + + add(animation: unknown) { return animation } } -export function createOrbitControls() {} +export function createOrbitControls() { + return { + dispose() {} + } +} -export const WalkingAnimation = { paused: false } -export const RunningAnimation = { paused: false } -export const RotatingAnimation = { paused: false } +export const WalkingAnimation = new Proxy({}, { + get() { + return jest.fn() + } +}) +export const RunningAnimation = new Proxy({}, { + get() { + return jest.fn() + } +}) +export const RotatingAnimation = new Proxy({}, { + get() { + return jest.fn() + } +}) export function isSlimSkin() { return false diff --git a/resources/assets/tests/components/Viewer.test.tsx b/resources/assets/tests/components/Viewer.test.tsx index 6cd6cbb1..1274a6e7 100644 --- a/resources/assets/tests/components/Viewer.test.tsx +++ b/resources/assets/tests/components/Viewer.test.tsx @@ -15,7 +15,7 @@ describe('indicator', () => { }) it('nothing', () => { - const { queryByText } = render() + const { queryByText } = render() expect(queryByText(t('general.skin'))).not.toBeInTheDocument() expect(queryByText(t('general.cape'))).not.toBeInTheDocument() }) @@ -70,75 +70,51 @@ describe('actions', () => { const { getByTitle } = render() fireEvent.click(getByTitle(t('general.reset'))) }) + + it('reset when running', () => { + const { getByTitle } = render() + fireEvent.click(getByTitle(`${t('general.walk')} / ${t('general.run')}`)) + fireEvent.click(getByTitle(t('general.reset'))) + }) }) describe('background', () => { it('white', () => { - const { getByTitle, baseElement } = render() + const { getByTitle } = render() fireEvent.click(getByTitle(t('colors.white'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toBe('rgb(255, 255, 255)') }) it('black', () => { - const { getByTitle, baseElement } = render() + const { getByTitle } = render() fireEvent.click(getByTitle(t('colors.black'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toBe('rgb(0, 0, 0)') }) it('white', () => { - const { getByTitle, baseElement } = render() + const { getByTitle } = render() fireEvent.click(getByTitle(t('colors.gray'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toBe('rgb(108, 117, 125)') }) it('previous picture', () => { - const { getByTitle, baseElement } = render() - + const { getByTitle } = render() fireEvent.click(getByTitle(t('colors.prev'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toStartWith('url') - fireEvent.click(getByTitle(t('colors.prev'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toStartWith('url') }) it('next picture', () => { - const { getByTitle, baseElement } = render() + const { getByTitle } = render() fireEvent.click(getByTitle(t('colors.next'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toStartWith('url') - fireEvent.click(getByTitle(t('colors.next'))) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toStartWith('url') Array.from({ length: PICTURES_COUNT - 1 }).forEach(() => { fireEvent.click(getByTitle(t('colors.next'))) }) - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toStartWith('url') }) it('default for dark mode', () => { document.body.classList.add('dark-mode') - const { baseElement } = render() - expect( - baseElement.querySelector('.card-body')!.style.background, - ).toBe('rgb(108, 117, 125)') + render() document.body.classList.remove('dark-mode') })