From a5ed6aaebff0cf9975b5357908d6728298899446 Mon Sep 17 00:00:00 2001 From: Tawnee Date: Mon, 22 Jul 2024 15:55:33 -0600 Subject: [PATCH] leaderboard tests --- .../__snapshots__/screen.test.tsx.snap | 5007 +++++++++++++++++ .../app/features/leaderboard/screen.test.tsx | 22 + packages/app/features/leaderboard/screen.tsx | 4 +- .../tests/leaderboard.logged-in.spec.ts | 22 + 4 files changed, 5053 insertions(+), 2 deletions(-) create mode 100644 packages/app/features/leaderboard/__snapshots__/screen.test.tsx.snap create mode 100644 packages/app/features/leaderboard/screen.test.tsx create mode 100644 packages/playwright/tests/leaderboard.logged-in.spec.ts diff --git a/packages/app/features/leaderboard/__snapshots__/screen.test.tsx.snap b/packages/app/features/leaderboard/__snapshots__/screen.test.tsx.snap new file mode 100644 index 000000000..249bcc88a --- /dev/null +++ b/packages/app/features/leaderboard/__snapshots__/screen.test.tsx.snap @@ -0,0 +1,5007 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`LeaderboardScreen renders leaderboard screen: LeaderboardScreen 1`] = ` + + + + Best in Class + + + Register a Sendtag, maintain the minimum balance, and refer others to rise in the ranks. + + + + + + + + Referrals + + + + + # + + + Sendtag + + + + Referrals + + + + + + 1 + + + + + + + + + + / + 0xUser + + + + + + 100 + + + 1500 USDC + + + + + + + 2 + + + + + + + + + + / + 0xUser1 + + + + + + 90 + + + 1500 USDC + + + + + + + 3 + + + + + + + + + + / + 0xUser2 + + + + + + 80 + + + 1500 USDC + + + + + + + 4 + + + + + + + + + + / + 0xUser3 + + + + + + 70 + + + 1500 USDC + + + + + + + 5 + + + + + + + + + + / + 0xUser4 + + + + + + 60 + + + 1500 USDC + + + + + + + 6 + + + + + + + + + + / + 0xUser5 + + + + + + 50 + + + 1500 USDC + + + + + + + 7 + + + + + + + + + + / + 0xUser6 + + + + + + 40 + + + 1500 USDC + + + + + + + 8 + + + + + + + + + + / + 0xUser7 + + + + + + 30 + + + 1500 USDC + + + + + + + 9 + + + + + + + + + + / + 0xUser8 + + + + + + 20 + + + 1500 USDC + + + + + + + 10 + + + + + + + + + + / + 0xUser9 + + + + + + 10 + + + 1500 USDC + + + + + + + 11 + + + + + + + + + + / + 0xUser10 + + + + + + 5 + + + 1500 USDC + + + + + + + 12 + + + + + + + + + + / + 0xUser11 + + + + + + 5 + + + 1500 USDC + + + + + + + 13 + + + + + + + + + + / + 0xUser12 + + + + + + 5 + + + 1500 USDC + + + + + + + + + + + + + + Send + + + + + # + + + Sendtag + + + + Total $SEND spent + + + + + + 1 + + + + + + + + + + / + 0xUser + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 2 + + + + + + + + + + / + 0xUser1 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 3 + + + + + + + + + + / + 0xUser2 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 4 + + + + + + + + + + / + 0xUser3 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 5 + + + + + + + + + + / + 0xUser4 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 6 + + + + + + + + + + / + 0xUser5 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 7 + + + + + + + + + + / + 0xUser6 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 8 + + + + + + + + + + / + 0xUser7 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 9 + + + + + + + + + + / + 0xUser8 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 10 + + + + + + + + + + / + 0xUser9 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 11 + + + + + + + + + + / + 0xUser10 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 12 + + + + + + + + + + / + 0xUser11 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + 13 + + + + + + + + + + / + 0xUser12 + + + + + + 1m 12s + + + 1500 USDC + + + + + + + + + + + +`; diff --git a/packages/app/features/leaderboard/screen.test.tsx b/packages/app/features/leaderboard/screen.test.tsx new file mode 100644 index 000000000..1b636cebd --- /dev/null +++ b/packages/app/features/leaderboard/screen.test.tsx @@ -0,0 +1,22 @@ +import { expect } from '@jest/globals' +import { Provider } from 'app/__mocks__/app/provider' +import { act, render, screen } from '@testing-library/react-native' +import { LeaderboardScreen } from './screen' + +describe('LeaderboardScreen', () => { + it('renders leaderboard screen', async () => { + jest.useFakeTimers() + render( + + + + ) + await act(async () => { + jest.runAllTimers() + }) + + const title = await screen.findByTestId('mainTitle') + expect(title).toHaveTextContent('Best in Class') + expect(screen.toJSON()).toMatchSnapshot('LeaderboardScreen') + }) +}) diff --git a/packages/app/features/leaderboard/screen.tsx b/packages/app/features/leaderboard/screen.tsx index 0b83ccdae..1f2ae4e66 100644 --- a/packages/app/features/leaderboard/screen.tsx +++ b/packages/app/features/leaderboard/screen.tsx @@ -112,7 +112,7 @@ export function LeaderboardScreen() { return ( -

+

Best in Class

@@ -133,7 +133,7 @@ function Leaderboard({ title, list }) { -

+

{title}

diff --git a/packages/playwright/tests/leaderboard.logged-in.spec.ts b/packages/playwright/tests/leaderboard.logged-in.spec.ts new file mode 100644 index 000000000..92465ce1b --- /dev/null +++ b/packages/playwright/tests/leaderboard.logged-in.spec.ts @@ -0,0 +1,22 @@ +import { assert } from 'app/utils/assert' +import { expect, test } from './fixtures/send-accounts' +import { debug } from 'debug' + +let log: debug.Debugger + +test.beforeEach(async ({ page, user: { user } }) => { + log = debug(`test:leaderboard:logged-in:${user.id}:${test.info().parallelIndex}`) + await page.goto('/leaderboard') + await page.waitForURL('/leaderboard') +}) + +test('can visit leaderboard page', async ({ page }) => { + await expect(page).toHaveURL('/leaderboard') + + await expect(page.getByText('Best in class')).toBeVisible() + await expect(page.getByTestId('titleReferrals')).toBeVisible() + await expect(page.getByTestId('titleSend')).toBeVisible() + + const elements = page.locator('text=Sendtag') + await expect(elements).toHaveCount(3) +})