Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeGinnivan committed Oct 21, 2024
1 parent 1d84a46 commit 846785e
Showing 1 changed file with 40 additions and 6 deletions.
46 changes: 40 additions & 6 deletions integration/single-fetch-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1687,12 +1687,46 @@ test.describe("single-fetch", () => {
});

expect(warnLogs).toEqual([
"⚠️ REMIX FUTURE CHANGE: Resource routes will no longer be able to return " +
"raw JavaScript objects in v3 when Single Fetch becomes the default. You " +
"can prepare for this change at your convenience by wrapping the data " +
"returned from your `loader` function in the `routes/resource` route with " +
"`json()`. For instructions on making this change see " +
"https://remix.run/docs/en/v2.9.2/guides/single-fetch#resource-routes",
"⚠️ REMIX FUTURE CHANGE: Externally-accessed resource routes will no longer be " +
"able to return raw JavaScript objects or `null` in React Router v7 when " +
"Single Fetch becomes the default. You can prepare for this change at your " +
`convenience by wrapping the data returned from your \`loader\` function in ` +
`the \`routes/resource\` route with \`json()\`. For instructions on making this ` +
"change, see https://remix.run/docs/en/v2.13.1/guides/single-fetch#resource-routes",
]);
console.warn = oldConsoleWarn;
});

test("wraps resource route 'null' returns in json with a deprecation warning", async () => {
let oldConsoleWarn = console.warn;
let warnLogs: unknown[] = [];
console.warn = (...args) => warnLogs.push(...args);

let fixture = await createFixture({
config: {
future: {
v3_singleFetch: true,
},
},
files: {
...files,
"app/routes/resource.tsx": js`
export function loader() {
return null;
}
`,
},
});
let res = await fixture.requestResource("/resource");
expect(await res.json()).toEqual(null);

expect(warnLogs).toEqual([
"⚠️ REMIX FUTURE CHANGE: Externally-accessed resource routes will no longer be " +
"able to return raw JavaScript objects or `null` in React Router v7 when " +
"Single Fetch becomes the default. You can prepare for this change at your " +
`convenience by wrapping the data returned from your \`loader\` function in ` +
`the \`routes/resource\` route with \`json()\`. For instructions on making this ` +
"change, see https://remix.run/docs/en/v2.13.1/guides/single-fetch#resource-routes",
]);
console.warn = oldConsoleWarn;
});
Expand Down

0 comments on commit 846785e

Please sign in to comment.