Skip to content

Search · E2E tests

0 modules · 0 exports · 0 repositories · 2 e2e tests · 1 route

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

searches for users and organizations

Renders//org/:slug/u/:identifier/u/:identifier

Setup
Arrange
  1. Create tournament organization owner Sendou name “Sendou.ink” → org
    const org = await factories.TournamentOrganizationFactory.create({
    	ownerId: ADMIN_ID,
    	name: ORGANIZATION_NAME,
    });
SSendou
Act
  1. Go to “/”
    await navigate({ page, url: "/" });
Global search dialog
Act
  1. Open
    await search.open();
  2. Select type “users”
    await search.selectType("users");
  3. Search “sendou”
    await search.search("sendou");
  4. Select option “Sendou”
    await search.selectOption("Sendou");
Assert
  1. the page URL is userPage({ id: ADMIN_ID })
    await expect(page).toHaveURL(userPage({ id: ADMIN_ID }));
Act
  1. Open
    await search.open();
  2. Select type “organizations”
    await search.selectType("organizations");
  3. Search “sendou”
    await search.search("sendou");
  4. Select option “Sendou.ink”
    await search.selectOption(ORGANIZATION_NAME);
Assert
  1. the page URL is tournamentOrganizationPage({ organizationSlug: org.slug })
    await expect(page).toHaveURL(
    	tournamentOrganizationPage({ organizationSlug: org.slug }),
    );
Source
test("searches for users and organizations", async ({ page, factories }) => {
	const org = await factories.TournamentOrganizationFactory.create({
		ownerId: ADMIN_ID,
		name: ORGANIZATION_NAME,
	});

	await impersonate(page);
	await navigate({ page, url: "/" });

	const search = new GlobalSearchDialog(page);

	await search.open();
	await search.selectType("users");
	await search.search("sendou");
	await search.selectOption("Sendou");
	await expect(page).toHaveURL(userPage({ id: ADMIN_ID }));

	await search.open();
	await search.selectType("organizations");
	await search.search("sendou");
	await search.selectOption(ORGANIZATION_NAME);
	await expect(page).toHaveURL(
		tournamentOrganizationPage({ organizationSlug: org.slug }),
	);
})

searches for weapons

Renders//builds/:slug

SSendou
Act
  1. Go to “/”
    await navigate({ page, url: "/" });
Global search dialog
Act
  1. Open
    await search.open();
  2. Select type “weapons”
    await search.selectType("weapons");
  3. Search “splattershot”
    await search.search("splattershot");
  4. Select option “Splattershot”
    await search.selectOption("Splattershot");
  5. Select option “Builds”
    await search.selectOption("Builds");
Assert
  1. the page URL is /\/builds\/splattershot/
    await expect(page).toHaveURL(/\/builds\/splattershot/);
Source
test("searches for weapons", async ({ page }) => {
	await impersonate(page);
	await navigate({ page, url: "/" });

	const search = new GlobalSearchDialog(page);

	await search.open();
	await search.selectType("weapons");
	await search.search("splattershot");
	await search.selectOption("Splattershot");
	await search.selectOption("Builds");
	await expect(page).toHaveURL(/\/builds\/splattershot/);
})