Skip to content

Commit 8dc2c4b

Browse files
committed
Merge branch 'feat/ui-ux-validation-fixes' into develop
2 parents cb75aaf + 3953774 commit 8dc2c4b

File tree

8 files changed

+847
-25
lines changed

8 files changed

+847
-25
lines changed

.babelrc.bckp

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/workflows/CI.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ jobs:
1212
steps:
1313
- uses: actions/checkout@v4
1414

15+
- name: Install pnpm
16+
run: npm install -g pnpm
17+
1518
- name: Use Node.js 20.x
1619
uses: actions/setup-node@v4
1720
with:
1821
node-version: 20
1922
cache: 'pnpm'
2023

21-
- name: Install pnpm
22-
run: npm install -g pnpm
23-
2424
- name: Install dependencies
2525
run: pnpm install
2626

@@ -30,11 +30,14 @@ jobs:
3030
- name: Format check
3131
run: pnpm format --check || true
3232

33-
- name: Run unit tests
34-
run: pnpm test
35-
3633
- name: Build
3734
run: pnpm build
3835

36+
- name: Install Playwright Browsers
37+
run: npx playwright install --with-deps
38+
39+
- name: Run unit tests
40+
run: pnpm test
41+
3942
- name: Run Playwright e2e tests
40-
run: pnpm e2e
43+
run: pnpm test:e2e

app/api/schemas/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export async function GET() {
1313
}));
1414
return NextResponse.json({ schemas });
1515
} catch (error) {
16-
return NextResponse.json({ error: error.message }, { status: 500 });
16+
const message = error instanceof Error ? error.message : String(error);
17+
return NextResponse.json({ error: message }, { status: 500 });
1718
}
1819
}

components/code-editor.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,10 @@ export default function CodeEditor({
181181
}
182182
/* Style for highlighted line */
183183
.editor-highlight-line {
184-
background-color: rgba(56, 189, 248, 0.5) !important;
185-
border-left: 4px solid #38bdf8 !important;
184+
background-color: rgba(56, 189, 248, 0.15) !important; // much less opaque
185+
border-left: 2px solid #38bdf8 !important;
186186
z-index: 10;
187+
pointer-events: none; // allow editing even when highlighted
187188
}
188189
`}</style>
189190
<Editor

components/csv-validator.tsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -856,8 +856,6 @@ export default function CsvValidator() {
856856
onClick={handleUploadClick}
857857
disabled={isLoadingSchemaContent || workerBusy || isLoadingCsv}
858858
className={`w-8 h-8 flex items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed ${csvFileName ? 'border-green-400 bg-green-50/60 dark:bg-green-900/20' : ''}`}
859-
disabled={isLoadingSchemaContent || isValidatingCsv || isLoadingCsv}
860-
className={`w-8 h-8 flex items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed ${csvFileName ? 'border-green-400 bg-green-50/60 dark:bg-green-900/20' : ''}`}
861859
tabIndex={0}
862860
aria-label="Upload another CSV file"
863861
>
@@ -869,8 +867,6 @@ export default function CsvValidator() {
869867
onClick={handleUploadClick}
870868
disabled={isLoadingSchemaContent || workerBusy || isLoadingCsv}
871869
className={`w-28 h-10 flex flex-col items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed`}
872-
disabled={isLoadingSchemaContent || isValidatingCsv || isLoadingCsv}
873-
className={`w-28 h-10 flex flex-col items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed`}
874870
tabIndex={0}
875871
>
876872
<Upload className="h-5 w-5 text-[#1e007d] dark:text-blue-300" />
@@ -1019,8 +1015,6 @@ export default function CsvValidator() {
10191015
onClick={handleUploadClick}
10201016
disabled={isLoadingSchemaContent || workerBusy || isLoadingCsv}
10211017
className={`w-8 h-8 flex items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed ${csvFileName ? 'border-green-400 bg-green-50/60 dark:bg-green-900/20' : ''}`}
1022-
disabled={isLoadingSchemaContent || isValidatingCsv || isLoadingCsv}
1023-
className={`w-8 h-8 flex items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed ${csvFileName ? 'border-green-400 bg-green-50/60 dark:bg-green-900/20' : ''}`}
10241018
tabIndex={0}
10251019
aria-label="Upload another CSV file"
10261020
>
@@ -1032,8 +1026,6 @@ export default function CsvValidator() {
10321026
onClick={handleUploadClick}
10331027
disabled={isLoadingSchemaContent || workerBusy || isLoadingCsv}
10341028
className={`w-28 h-10 flex flex-col items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed`}
1035-
disabled={isLoadingSchemaContent || isValidatingCsv || isLoadingCsv}
1036-
className={`w-28 h-10 flex flex-col items-center justify-center rounded border-2 border-dashed border-[#1e007d]/30 dark:border-zinc-600 bg-white/60 dark:bg-zinc-900/40 shadow-sm hover:shadow-lg transition-all cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-400 disabled:opacity-60 disabled:cursor-not-allowed`}
10371029
tabIndex={0}
10381030
>
10391031
<Upload className="h-5 w-5 text-[#1e007d] dark:text-blue-300" />

jest.config.cjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
module.exports = {
2+
preset: 'ts-jest',
23
testEnvironment: 'jsdom',
4+
transform: {
5+
'^.+\\.[jt]sx?$': 'ts-jest',
6+
},
37
moduleNameMapper: {
48
'^@/(.*)$': '<rootDir>/$1',
59
},

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"@testing-library/jest-dom": "^6.6.3",
6464
"@testing-library/react": "^16.3.0",
6565
"@testing-library/user-event": "^14.6.1",
66+
"@types/jest": "^29.5.14",
6667
"@types/node": "^22.14.0",
6768
"@types/papaparse": "^5.3.15",
6869
"@types/react": "^19",

0 commit comments

Comments
 (0)