1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // @ts-check
- const { test, expect } = require("@playwright/test");
- test("nested suspense resolves", async ({ page }) => {
- // Wait for the dev server to reload
- await page.goto("http://localhost:6060");
- // Then wait for the page to start loading
- await page.goto("http://localhost:6060", { waitUntil: "commit" });
- // Expect the page to contain the suspense result from the server
- const mainMessageTitle = page.locator("#title-0");
- await expect(mainMessageTitle).toContainText("The robot says hello world");
- const mainMessageBody = page.locator("#body-0");
- await expect(mainMessageBody).toContainText(
- "The robot becomes sentient and says hello world"
- );
- // And expect the title to have resolved on the client
- await expect(page).toHaveTitle("The robot says hello world");
- // Nested suspense should be resolved
- const nestedMessageTitle1 = page.locator("#title-1");
- await expect(nestedMessageTitle1).toContainText("The world says hello back");
- const nestedMessageBody1 = page.locator("#body-1");
- await expect(nestedMessageBody1).toContainText(
- "In a stunning turn of events, the world collectively unites and says hello back"
- );
- const nestedMessageDiv2 = page.locator("#children-2");
- await expect(nestedMessageDiv2).toBeEmpty();
- const nestedMessageTitle2 = page.locator("#title-2");
- await expect(nestedMessageTitle2).toContainText("Goodbye Robot");
- const nestedMessageBody2 = page.locator("#body-2");
- await expect(nestedMessageBody2).toContainText("The robot says goodbye");
- const nestedMessageDiv3 = page.locator("#children-3");
- await expect(nestedMessageDiv3).toBeEmpty();
- const nestedMessageTitle3 = page.locator("#title-3");
- await expect(nestedMessageTitle3).toContainText("Goodbye World");
- const nestedMessageBody3 = page.locator("#body-3");
- await expect(nestedMessageBody3).toContainText("The world says goodbye");
- // Deeply nested suspense should be resolved
- const nestedMessageDiv4 = page.locator("#children-4");
- await expect(nestedMessageDiv4).toBeEmpty();
- const nestedMessageTitle4 = page.locator("#title-4");
- await expect(nestedMessageTitle4).toContainText("Hello World");
- const nestedMessageBody4 = page.locator("#body-4");
- await expect(nestedMessageBody4).toContainText("The world says hello again");
- });
|