Skip to content

Top search · E2E tests

0 modules · 0 exports · 1 repository · 2 e2e tests · 2 routes

  • Arrange data setup
  • Act what the user does
  • Assert what is expected

views different x rank placements

Renders/xsearch

Setup
Arrange
  1. Create user → player
    const player = await factories.UserFactory.create();
  2. Create X rank placement ...MONTH_YEAR player user id player.id name “Brasario” mode “TC” region “WEST”
    await factories.XRankPlacementFactory.create({
    	...MONTH_YEAR,
    	playerUserId: player.id,
    	name: PLACED_PLAYER_NAME,
    	mode: "TC",
    	region: "WEST",
    });
LOLogged out
Top search page
Act
  1. Open the top search page
    await topSearch.goto();
  2. Select leaderboard ...MONTH_YEAR mode “TC” region “WEST”
    await topSearch.selectLeaderboard({
    	...MONTH_YEAR,
    	mode: "TC",
    	region: "WEST",
    });
Assert
  1. row 0 contains “Brasario”
    await expect(topSearch.placements.row(0)).toContainText(PLACED_PLAYER_NAME);
Source
test("views different x rank placements", async ({ page, factories }) => {
	const player = await factories.UserFactory.create();
	await factories.XRankPlacementFactory.create({
		...MONTH_YEAR,
		playerUserId: player.id,
		name: PLACED_PLAYER_NAME,
		mode: "TC",
		region: "WEST",
	});

	const topSearch = new TopSearchPage(page);
	await topSearch.goto();

	await topSearch.selectLeaderboard({
		...MONTH_YEAR,
		mode: "TC",
		region: "WEST",
	});

	await expect(topSearch.placements.row(0)).toContainText(PLACED_PLAYER_NAME);
})

Renders/u/:identifier/u/:identifier/xsearch/*

Setup
Arrange
  1. Create user → rival
    const rival = await factories.UserFactory.create();
  2. the admin places first, so their row is the one the leaderboard opens on

    Create X rank placement ...MONTH_YEAR player Sendou name “Sendou” mode “SZ” region “WEST”
    await factories.XRankPlacementFactory.create({
    	...MONTH_YEAR,
    	playerUserId: ADMIN_ID,
    	name: "Sendou",
    	mode: "SZ",
    	region: "WEST",
    });
  3. Create X rank placement ...MONTH_YEAR player user id rival.id name “Twig?” mode “SZ” region “WEST”
    await factories.XRankPlacementFactory.create({
    	...MONTH_YEAR,
    	playerUserId: rival.id,
    	name: RIVAL_NAME,
    	mode: "SZ",
    	region: "WEST",
    });
LOLogged out
User page
Act
  1. Open the user page Sendou
    await user.goto(ADMIN_ID);
  2. Open placements → playerPlacements
    const playerPlacements = await user.openPlacements();
Top search player page
Assert
  1. heading contains “Sendou”
    await expect(playerPlacements.locators.heading).toContainText("Sendou");
Act
  1. Open leaderboard 0 → topSearch
    const topSearch = await playerPlacements.openLeaderboard(0);
Top search page
Assert
  1. row 1 contains “Twig?”
    await expect(topSearch.placements.row(1)).toContainText(RIVAL_NAME);
Source
test("navigates from user page to x search player page to x search", async ({
	page,
	factories,
}) => {
	const rival = await factories.UserFactory.create();
	// the admin places first, so their row is the one the leaderboard opens on
	await factories.XRankPlacementFactory.create({
		...MONTH_YEAR,
		playerUserId: ADMIN_ID,
		name: "Sendou",
		mode: "SZ",
		region: "WEST",
	});
	await factories.XRankPlacementFactory.create({
		...MONTH_YEAR,
		playerUserId: rival.id,
		name: RIVAL_NAME,
		mode: "SZ",
		region: "WEST",
	});

	const user = new UserPage(page);
	await user.goto(ADMIN_ID);

	const playerPlacements = await user.openPlacements();
	await expect(playerPlacements.locators.heading).toContainText("Sendou");

	const topSearch = await playerPlacements.openLeaderboard(0);
	await expect(topSearch.placements.row(1)).toContainText(RIVAL_NAME);
})