Restore SSG serve logic (#4111)
* 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
This commit is contained in:
1 parent
f610c6b8c1
commit
fdd77d79c1
17 files changed
+357
-236
No files matched your search
@@ -1,51 +1,50 @@
|
||||
// TODO: ssg is disabled in the CLI server
|
||||
// // @ts-check
|
||||
// const { test, expect } = require("@playwright/test");
|
||||
// @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" });
|
||||
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"
|
||||
// );
|
||||
// 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");
|
||||
// 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"
|
||||
// );
|
||||
// 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 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");
|
||||
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");
|
||||
// });
|
||||
// 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");
|
||||
});
|
||||
@@ -147,16 +147,15 @@ module.exports = defineConfig({
|
||||
reuseExistingServer: !process.env.CI,
|
||||
stdout: "pipe",
|
||||
},
|
||||
// currently disabled - we want ssg to be a "bundle" feature, not a serve feature.
|
||||
// {
|
||||
// cwd: path.join(process.cwd(), "nested-suspense"),
|
||||
// command:
|
||||
// 'cargo run --package dioxus-cli --release -- serve --bin nested-suspense-ssg --force-sequential --platform web --ssg --addr "127.0.0.1" --port 6060',
|
||||
// port: 6060,
|
||||
// timeout: 50 * 60 * 1000,
|
||||
// reuseExistingServer: !process.env.CI,
|
||||
// stdout: "pipe",
|
||||
// },
|
||||
{
|
||||
cwd: path.join(process.cwd(), "nested-suspense"),
|
||||
command:
|
||||
'cargo run --package dioxus-cli --release -- serve --bin nested-suspense-ssg --force-sequential --platform web --ssg --addr "127.0.0.1" --port 6060',
|
||||
port: 6060,
|
||||
timeout: 50 * 60 * 1000,
|
||||
reuseExistingServer: !process.env.CI,
|
||||
stdout: "pipe",
|
||||
},
|
||||
{
|
||||
cwd: path.join(process.cwd(), "cli-optimization"),
|
||||
// Remove the cache folder for the cli-optimization build to force a full cache reset
|
||||
|
||||
Reference in new issue
Block a user