diff --git a/.gitignore b/.gitignore index 68bab67..48d50b5 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# temporary patch scripts +patch*.js diff --git a/patch10.js b/patch10.js deleted file mode 100644 index 90147a3..0000000 --- a/patch10.js +++ /dev/null @@ -1,44 +0,0 @@ -const fs = require('fs'); -const files = [ - 'src/components/layout/mobile-nav.test.tsx', - 'src/components/layout/sidebar.test.tsx', - 'src/tests/layout/mobile-nav.test.tsx', - 'src/tests/layout/sidebar.test.tsx' -]; - -for (const file of files) { - if (!fs.existsSync(file)) continue; - let code = fs.readFileSync(file, 'utf8'); - if (!code.includes('useAuthStore')) { - code = code.replace( - /import \{ render, screen \} from "@testing-library\/react";/, - `import { render, screen } from "@testing-library/react";\nimport { useAuthStore } from "@/store/auth-store";` - ); - } - if (!code.includes('useAuthStore.setState')) { - if (!code.includes('beforeEach')) { - code = code.replace( - /describe\(".*", \(\) => \{/, - `describe("Nav", () => {\n beforeEach(() => {\n useAuthStore.setState({ isAuthenticated: true, hasHydrated: true });\n });\n` - ); - } else { - code = code.replace( - /beforeEach\(\(\) => \{/, - `beforeEach(() => {\n useAuthStore.setState({ isAuthenticated: true, hasHydrated: true });` - ); - } - } - fs.writeFileSync(file, code); -} - -const headerFiles = [ - 'src/components/layout/header.test.tsx', - 'src/tests/layout/header.test.tsx' -]; - -for (const file of headerFiles) { - if (!fs.existsSync(file)) continue; - let code = fs.readFileSync(file, 'utf8'); - code = code.replace(/getByLabelText\("Toggle navigation"\)/g, 'getByLabelText(/Toggle navigation/i)'); - fs.writeFileSync(file, code); -} diff --git a/patch11.js b/patch11.js deleted file mode 100644 index 5f33ed5..0000000 --- a/patch11.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs'); -const files = [ - 'src/components/layout/mobile-nav.test.tsx', - 'src/components/layout/sidebar.test.tsx' -]; - -for (const file of files) { - let code = fs.readFileSync(file, 'utf8'); - if (!code.includes('vi.mock("next/navigation"')) { - code = code.replace( - /import \{ render, screen \} from "@testing-library\/react";/, - `import { render, screen } from "@testing-library/react";\nimport { vi } from "vitest";\n\nvi.mock("next/navigation", () => ({\n usePathname: () => "/dashboard",\n useRouter: () => ({ push: vi.fn() }),\n useSearchParams: () => new URLSearchParams(),\n}));` - ); - } - fs.writeFileSync(file, code); -} diff --git a/patch12.js b/patch12.js deleted file mode 100644 index 8edb8c6..0000000 --- a/patch12.js +++ /dev/null @@ -1,14 +0,0 @@ -const fs = require('fs'); -const file = 'src/components/course/course-card.test.tsx'; -if (fs.existsSync(file)) { - let code = fs.readFileSync(file, 'utf8'); - code = code.replace( - /expect\(screen\.getByText\("beginner"\)\)\.toBeInTheDocument\(\);/g, - `expect(screen.getByText(/beginner/i)).toBeInTheDocument();` - ); - code = code.replace( - /const badge = screen\.getByText\(difficulty\);/g, - `const badge = screen.getByText(new RegExp(difficulty, "i"));` - ); - fs.writeFileSync(file, code); -} diff --git a/patch13.js b/patch13.js deleted file mode 100644 index e406bdb..0000000 --- a/patch13.js +++ /dev/null @@ -1,24 +0,0 @@ -const fs = require('fs'); -const files = [ - 'src/components/layout/mobile-nav.test.tsx', - 'src/components/layout/sidebar.test.tsx', - 'src/tests/layout/mobile-nav.test.tsx', - 'src/tests/layout/sidebar.test.tsx' -]; - -for (const file of files) { - if (!fs.existsSync(file)) continue; - let code = fs.readFileSync(file, 'utf8'); - if (code.includes('beforeEach') && !code.includes('beforeEach } from "vitest"')) { - code = code.replace( - /import \{ describe, it, expect \} from "vitest";/, - `import { describe, it, expect, beforeEach } from "vitest";` - ); - // if vi is imported separately, wait, it might be `describe, it, expect, vi` - code = code.replace( - /import \{ describe, it, expect, vi \} from "vitest";/, - `import { describe, it, expect, vi, beforeEach } from "vitest";` - ); - } - fs.writeFileSync(file, code); -} diff --git a/patch7.js b/patch7.js deleted file mode 100644 index 3ed349f..0000000 --- a/patch7.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require('fs'); -const file = 'src/tests/course/course-card.test.tsx'; -let code = fs.readFileSync(file, 'utf8'); -code = code.replace( - /expect\(screen\.getByText\("beginner"\)\)\.toBeInTheDocument\(\);/, - `expect(screen.getByText(/beginner/i)).toBeInTheDocument();` -); -code = code.replace( - /const badge = screen\.getByText\(difficulty\);/, - `const badge = screen.getByText(new RegExp(difficulty, "i"));` -); -fs.writeFileSync(file, code); diff --git a/patch8.js b/patch8.js deleted file mode 100644 index b357d64..0000000 --- a/patch8.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require('fs'); -const file = 'src/components/layout/header.tsx'; -let code = fs.readFileSync(file, 'utf8'); -code = code.replace( - /import \{ Avatar, AvatarFallback, AvatarImage \} from "@\/components\/ui\/avatar";\n/, - '' -); -code = code.replace( - /import \{ Avatar, AvatarFallback, getInitials \} from "@\/components\/ui\/avatar";\n/, - 'import { Avatar, AvatarFallback, AvatarImage, getInitials } from "@/components/ui/avatar";\n' -); -fs.writeFileSync(file, code); diff --git a/patch9.js b/patch9.js deleted file mode 100644 index afaefd9..0000000 --- a/patch9.js +++ /dev/null @@ -1,24 +0,0 @@ -const fs = require('fs'); -const files = ['src/tests/layout/mobile-nav.test.tsx', 'src/tests/layout/sidebar.test.tsx']; - -for (const file of files) { - let code = fs.readFileSync(file, 'utf8'); - if (!code.includes('useAuthStore')) { - code = code.replace( - /import \{ render, screen \} from "@testing-library\/react";/, - `import { render, screen } from "@testing-library/react";\nimport { useAuthStore } from "@/store/auth-store";` - ); - } - if (!code.includes('beforeEach')) { - code = code.replace( - /describe\(".*", \(\) => \{/, - `describe("Nav", () => {\n beforeEach(() => {\n useAuthStore.setState({ isAuthenticated: true, hasHydrated: true });\n });\n` - ); - } else { - code = code.replace( - /beforeEach\(\(\) => \{/, - `beforeEach(() => {\n useAuthStore.setState({ isAuthenticated: true, hasHydrated: true });` - ); - } - fs.writeFileSync(file, code); -}