From 6ccef2e8334d9f1ea78adb5eef90960ab2a18a44 Mon Sep 17 00:00:00 2001 From: aliamerj Date: Sat, 17 May 2025 21:33:33 +0300 Subject: [PATCH 1/2] set up dropbox testing and fix bug --- DataSource/Dropbox/setDropboxConnection.ts | 1 - app/api/connections/dropbox/callback/route.ts | 2 +- app/layout.tsx | 8 +- .../ConfigConnection/ConfigConnection.tsx | 18 ++- cypress.config.ts | 6 +- cypress/e2e/connections.cy.ts | 4 +- cypress/e2e/dropbox.cy.ts | 133 ++++++++++++++++++ cypress/support/commands.ts | 8 +- fileProcessors/index.ts | 22 ++- mocks/handlers.ts | 85 ++++++++++- 10 files changed, 264 insertions(+), 23 deletions(-) create mode 100644 cypress/e2e/dropbox.cy.ts diff --git a/DataSource/Dropbox/setDropboxConnection.ts b/DataSource/Dropbox/setDropboxConnection.ts index a7fd848..fa72429 100644 --- a/DataSource/Dropbox/setDropboxConnection.ts +++ b/DataSource/Dropbox/setDropboxConnection.ts @@ -3,7 +3,6 @@ import { connections } from "@/db/schemas/connections"; import { eq } from "drizzle-orm"; import { connectionConfig } from "../utils"; - export const setDropboxConnection = async (formData: FormData) => { const config = connectionConfig.safeParse({ connectionId: formData.get("connectionId"), diff --git a/app/api/connections/dropbox/callback/route.ts b/app/api/connections/dropbox/callback/route.ts index 3b68d5c..c14051f 100644 --- a/app/api/connections/dropbox/callback/route.ts +++ b/app/api/connections/dropbox/callback/route.ts @@ -104,6 +104,6 @@ export async function GET(request: Request) { } return NextResponse.redirect(`${process.env.NEXTAUTH_URL}/connections`); } catch (error) { - return NextResponse.json({ error: 'Failed to authenticate' }, { status: 500 }); + return NextResponse.json({ error: 'Failed to authenticate' }, { status: 401 }); } } diff --git a/app/layout.tsx b/app/layout.tsx index de90952..2b53cfb 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -30,11 +30,9 @@ export const metadata: Metadata = { }; if (process.env.NEXT_PUBLIC_APP_ENV === 'TEST') { - if (!(global as any).__MSW_SERVER_STARTED__) { - console.log('🔧 MSW mock server starting...'); - mockServer.listen(); - (global as any).__MSW_SERVER_STARTED__ = true; - } + console.log('🔧🔧🔧 MSW mock server starting...🔧🔧🔧'); + mockServer.listen(); + (global as any).__MSW_SERVER_STARTED__ = true; } export default async function Layout({ children }: { children: ReactNode }) { diff --git a/components/ConfigConnection/ConfigConnection.tsx b/components/ConfigConnection/ConfigConnection.tsx index 94e46de..f49ee14 100644 --- a/components/ConfigConnection/ConfigConnection.tsx +++ b/components/ConfigConnection/ConfigConnection.tsx @@ -32,6 +32,7 @@ type ConnectionProps = { export const ConfigConnection = ({ connection, directory, status, open, setOpen, showPicker }: ConnectionProps) => { const [isConfigSet, setIsConfigSet] = useState(connection.isConfigSet) const [pending, startTransition] = useTransition() + const isTest = process.env.NEXT_PUBLIC_APP_ENV === 'TEST' // Service-specific text configuration const serviceLabels = { @@ -55,9 +56,15 @@ export const ConfigConnection = ({ connection, directory, status, open, setOpen, const handleSetConfig = (data: FormData) => { data.set("connectionId", connection.id) - data.set("folderName", directory.name) data.set("service", connection.service) + if (directory?.id) data.set("folderId", directory.id) + if (isTest) { + const folderName = data.get("folderName") + data.set("folderId", folderName || "") + } else { + data.set("folderName", directory.name) + } startTransition(async () => { const setConfig = async () => { try { @@ -121,11 +128,12 @@ export const ConfigConnection = ({ connection, directory, status, open, setOpen,