* Build ssg routes when both the client and server builds are finished * Fix default server fn encoding * fix tokio console * fix ssg * add prerendering message * render under the same environment variables as normal * fix check * use should_bundle_to_asset * enable ssg playwright test * fix clippy
51 lines
2.2 KiB
JavaScript
51 lines
2.2 KiB
JavaScript
// @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");
|
|
});
|