fix onboarding cache and remove the stupid renovate stuff
This commit is contained in:
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:recommended"
|
|
||||||
],
|
|
||||||
"schedule": ["before 6am on Monday"],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"pinDigests": true,
|
|
||||||
"labels": ["dependencies"],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"description": "Group Overlord-Server minor and patch npm updates",
|
|
||||||
"matchManagers": ["npm"],
|
|
||||||
"matchPaths": ["Overlord-Server/package.json"],
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "Overlord-Server dependencies (minor + patch)",
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Group Overlord-Desktop minor and patch npm updates",
|
|
||||||
"matchManagers": ["npm"],
|
|
||||||
"matchPaths": ["Overlord-Desktop/package.json"],
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "Overlord-Desktop dependencies (minor + patch)",
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Group Go module minor and patch updates",
|
|
||||||
"matchManagers": ["gomod"],
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "Go modules (minor + patch)",
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Group GitHub Actions minor and patch updates",
|
|
||||||
"matchManagers": ["github-actions"],
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "GitHub Actions (minor + patch)",
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Group Docker base image minor and patch updates",
|
|
||||||
"matchManagers": ["dockerfile", "docker-compose"],
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "Docker base images (minor + patch)",
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Individual PRs for all major updates",
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"groupName": null,
|
|
||||||
"automerge": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ignoreDeps": [],
|
|
||||||
"vulnerabilityAlerts": {
|
|
||||||
"enabled": true,
|
|
||||||
"labels": ["dependencies", "security"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -159,7 +159,10 @@ if (host) {
|
|||||||
|
|
||||||
async function loadCurrentUser() {
|
async function loadCurrentUser() {
|
||||||
try {
|
try {
|
||||||
const res = await fetch("/api/auth/me", { credentials: "include" });
|
const res = await fetch("/api/auth/me", {
|
||||||
|
credentials: "include",
|
||||||
|
cache: "no-store",
|
||||||
|
});
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ export function showOnboardingIfNeeded(user) {
|
|||||||
const response = await fetch("/api/auth/onboarding/complete", {
|
const response = await fetch("/api/auth/onboarding/complete", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
credentials: "include",
|
credentials: "include",
|
||||||
|
cache: "no-store",
|
||||||
});
|
});
|
||||||
if (!response.ok) throw new Error("Could not save your onboarding status.");
|
if (!response.ok) throw new Error("Could not save your onboarding status.");
|
||||||
overlay.remove();
|
overlay.remove();
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ describe("account onboarding", () => {
|
|||||||
const meUrl = new URL("https://localhost/api/auth/me");
|
const meUrl = new URL("https://localhost/api/auth/me");
|
||||||
const before = await handleAuthRoutes(new Request(meUrl, { headers }), meUrl, mockServer);
|
const before = await handleAuthRoutes(new Request(meUrl, { headers }), meUrl, mockServer);
|
||||||
expect(before?.status).toBe(200);
|
expect(before?.status).toBe(200);
|
||||||
|
expect(before?.headers.get("cache-control")).toContain("no-store");
|
||||||
expect((await before!.json()).needsOnboarding).toBe(true);
|
expect((await before!.json()).needsOnboarding).toBe(true);
|
||||||
|
|
||||||
const completeUrl = new URL("https://localhost/api/auth/onboarding/complete");
|
const completeUrl = new URL("https://localhost/api/auth/onboarding/complete");
|
||||||
@@ -70,10 +71,19 @@ describe("account onboarding", () => {
|
|||||||
mockServer,
|
mockServer,
|
||||||
);
|
);
|
||||||
expect(completed?.status).toBe(200);
|
expect(completed?.status).toBe(200);
|
||||||
|
expect(completed?.headers.get("cache-control")).toContain("no-store");
|
||||||
|
|
||||||
const after = await handleAuthRoutes(new Request(meUrl, { headers }), meUrl, mockServer);
|
const after = await handleAuthRoutes(new Request(meUrl, { headers }), meUrl, mockServer);
|
||||||
expect(after?.status).toBe(200);
|
expect(after?.status).toBe(200);
|
||||||
expect((await after!.json()).needsOnboarding).toBe(false);
|
expect((await after!.json()).needsOnboarding).toBe(false);
|
||||||
|
|
||||||
|
const repeated = await handleAuthRoutes(
|
||||||
|
new Request(completeUrl, { method: "POST", headers }),
|
||||||
|
completeUrl,
|
||||||
|
mockServer,
|
||||||
|
);
|
||||||
|
expect(repeated?.status).toBe(200);
|
||||||
|
expect((await repeated!.json()).needsOnboarding).toBe(false);
|
||||||
} finally {
|
} finally {
|
||||||
deleteUser(created.userId!);
|
deleteUser(created.userId!);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -514,7 +514,10 @@ export async function handleAuthRoutes(
|
|||||||
permissions,
|
permissions,
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Cache-Control": "no-store, private",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -526,7 +529,21 @@ export async function handleAuthRoutes(
|
|||||||
}
|
}
|
||||||
|
|
||||||
completeUserOnboarding(user.userId);
|
completeUserOnboarding(user.userId);
|
||||||
return Response.json({ ok: true, needsOnboarding: false });
|
const dbUser = getUserById(user.userId);
|
||||||
|
if (!dbUser || dbUser.onboarding_completed_at === null) {
|
||||||
|
return Response.json(
|
||||||
|
{ error: "Could not save onboarding status" },
|
||||||
|
{
|
||||||
|
status: 500,
|
||||||
|
headers: { "Cache-Control": "no-store, private" },
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.json(
|
||||||
|
{ ok: true, needsOnboarding: false },
|
||||||
|
{ headers: { "Cache-Control": "no-store, private" } },
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user