1
0

fullstack-routing.spec.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // @ts-check
  2. const { test, expect } = require("@playwright/test");
  3. // Wait for the build to finish
  4. async function waitForBuild(request) {
  5. for (let i = 0; i < 10; i++) {
  6. const build = await request.get("http://localhost:8888");
  7. let text = await build.text();
  8. if (!text.includes("Backend connection failed")) {
  9. return;
  10. }
  11. await new Promise((r) => setTimeout(r, 1000));
  12. }
  13. }
  14. // The home and id routes should return 200
  15. test("home route", async ({ request }) => {
  16. await waitForBuild(request);
  17. const response = await request.get("http://localhost:8888");
  18. expect(response.status()).toBe(200);
  19. const text = await response.text();
  20. expect(text).toContain("Home");
  21. });
  22. test("blog route", async ({ request }) => {
  23. await waitForBuild(request);
  24. const response = await request.get("http://localhost:8888/blog/123");
  25. expect(response.status()).toBe(200);
  26. const text = await response.text();
  27. expect(text).toContain("id: 123");
  28. });
  29. // The error route should return 500
  30. test("error route", async ({ request }) => {
  31. await waitForBuild(request);
  32. const response = await request.get("http://localhost:8888/error");
  33. expect(response.status()).toBe(500);
  34. });
  35. // An unknown route should return 404
  36. test("unknown route", async ({ request }) => {
  37. await waitForBuild(request);
  38. const response = await request.get(
  39. "http://localhost:8888/this-route-does-not-exist"
  40. );
  41. expect(response.status()).toBe(404);
  42. });