Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d2509b8
feat: enhance TransactionTable component with testing and data attrib…
halilibrahimcelik Dec 16, 2025
9bdb7e3
refactor(tests): clean up imports and improve formatting in Transacti…
halilibrahimcelik Dec 16, 2025
5f07c44
feat: add DotGrid component and integrate GSAP for animations; update…
halilibrahimcelik Dec 17, 2025
579b3f2
Refactor dashboard page imports and fix typo in component name; enhan…
halilibrahimcelik Dec 18, 2025
17d2ea6
feat: add Carousel component and new images; refactor layout and tran…
halilibrahimcelik Dec 18, 2025
35c3fe1
feat: fix import path for TransactionColumns; update TransactionTable…
halilibrahimcelik Dec 18, 2025
7ddb00b
feat: update layout components for improved spacing and consistency; …
halilibrahimcelik Dec 18, 2025
db155f9
feat: enhance AuthForm component with accessibility attributes; updat…
halilibrahimcelik Dec 19, 2025
a867492
feat: refactor TransactionForm and DatePicker components for consiste…
halilibrahimcelik Dec 19, 2025
d430155
feat: enhance TransactionForm tests to improve mutation handling and …
halilibrahimcelik Dec 19, 2025
2d117e6
feat: add GitHub Actions workflows for unit and e2e tests; update tes…
halilibrahimcelik Dec 22, 2025
ffb0544
feat: add linting and coverage steps to CI workflow; update vitest co…
halilibrahimcelik Dec 23, 2025
0a2c636
feat: add caching action for Node and pnpm dependencies; refactor CI …
halilibrahimcelik Dec 25, 2025
5b59809
feat: rename workflow from "Run Unit Tests" to "CI Pipeline" for clarity
halilibrahimcelik Dec 25, 2025
da38a9f
feat: update authentication flow to include user email handling and i…
halilibrahimcelik Dec 25, 2025
5e85d48
feat: implement guest login functionality using magic link; add loadi…
halilibrahimcelik Dec 26, 2025
e5b5188
refactor: standardize string quotes and improve error handling in aut…
halilibrahimcelik Dec 26, 2025
6b2521e
fix: correct ESLint rule formatting, enhance guest login error handli…
halilibrahimcelik Dec 26, 2025
09274cf
refactor: standardize string quotes in Signup tests and update email …
halilibrahimcelik Dec 26, 2025
63f7c15
feat: add E2E testing workflow with Cypress and integrate into CI pip…
halilibrahimcelik Dec 26, 2025
bbe9a0d
chore: remove E2E testing workflow configuration from GitHub Actions
halilibrahimcelik Dec 26, 2025
cfc8770
feat: add environment variables for unit tests in CI pipeline
halilibrahimcelik Dec 26, 2025
c8aa617
feat: specify Chrome browser for Cypress E2E tests
halilibrahimcelik Dec 26, 2025
3e22821
fix: correct typo in Cypress run command for E2E tests
halilibrahimcelik Dec 26, 2025
b8bd132
fix: update cache key pattern for pnpm-lock.yaml in GitHub Actions
halilibrahimcelik Dec 26, 2025
4b07136
fix: remove unused user import and clean up password reset request ha…
halilibrahimcelik Dec 26, 2025
37d6894
fix: downgrade actions/checkout version to v4 and add environment var…
halilibrahimcelik Dec 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/actions/cache-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Setup Node and pnpm and cache dependencies'
description: 'an action to setup node, pnpm and cache dependencies for workflows'
inputs:
caching:
description: "Whether to cache dependencies"
required: false
default: "true"
outputs:
used-cache:
description: "Whether the cache was used"
value: ${{steps.install-deps.outputs.cache}}
runs:
using: 'composite'
steps:

- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '20'

- name: Cache Dependencies
if: ${{inputs.caching == 'true'}}
id: cache
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.7.1

- name: Install dependencies
id: install-deps
if: ${{steps.cache.outputs.cache-hit != 'true'}} || ${{inputs.caching == 'false'}}
run: |
pnpm install
echo "cache=${{inputs.caching}}" >> $GITHUB_OUTPUT
shell: bash
64 changes: 64 additions & 0 deletions .github/workflows/actions/e2e-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: 'E2E Tests'
description: 'Run end-to-end tests with Cypress'

inputs:
database-url:
description: 'Database connection URL'
required: true
better-auth-secret:
description: 'Better Auth secret key'
required: true
better-auth-url:
description: 'Better Auth URL'
required: false
default: 'http://localhost:3000'
better-auth-trusted-origins:
description: 'Better Auth trusted origins'
required: false
default: 'http://localhost:3000,http://127.0.0.1:3000'
resend-api-key:
description: 'Resend API key'
required: true
base-url:
description: 'Base URL for the application'
required: false
default: 'http://localhost:3000'
prod-base-url:
description: 'Production base URL'
required: true
test-email:
description: 'Test user email'
required: true
test-password:
description: 'Test user password'
required: true

runs:
using: 'composite'
steps:
- name: Install Cypress
shell: bash
run: pnpm add cypress --save-dev && pnpm cypress install

- name: Run E2E Tests
shell: bash
env:
DATABASE_URL: ${{ inputs.database-url }}
BETTER_AUTH_SECRET: ${{ inputs.better-auth-secret }}
BETTER_AUTH_URL: ${{ inputs.better-auth-url }}
BETTER_AUTH_TRUSTED_ORIGINS: ${{ inputs.better-auth-trusted-origins }}
RESEND_API_KEY: ${{ inputs.resend-api-key }}
BASE_URL: ${{ inputs.base-url }}
PROD_BASE_URL: ${{ inputs.prod-base-url }}
TEST_EMAIL: ${{ inputs.test-email }}
TEST_PASSWORD: ${{ inputs.test-password }}
run: pnpm dlx start-server-and-test "pnpm dev" http://localhost:3000 "pnpm cypress run --browser chrome"

- name: Upload Cypress Videos and Screenshots on Failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: cypress-artifacts
path: |
cypress/videos
cypress/screenshots
101 changes: 101 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: "CI Pipeline"
on:
push:
branches:
[main]
pull_request:
branches:
[main]

jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Load & Cache Dependencies
id: load-cache-deps
uses: ./.github/workflows/actions/cache-deps
with:
caching: "true"
- name: Output Cache Status
run: echo "Used cache ${{steps.load-cache-deps.outputs.used-cache}}"
- name: Run Unit Tests
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
BETTER_AUTH_SECRET: ${{ secrets.BETTER_AUTH_SECRET }}
BETTER_AUTH_URL: http://localhost:3000
BETTER_AUTH_TRUSTED_ORIGINS: "http://localhost:3000,http://127.0.0.1:3000"
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
BASE_URL: http://localhost:3000
PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }}
run: pnpm test
e2e-tests:
needs: tests
runs-on: ubuntu-latest
timeout-minutes: 25
container:
image: cypress/browsers:latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Load & Cache Dependencies
id: load-cache-deps
uses: ./.github/workflows/actions/cache-deps
with:
caching: "true"
- name: Output Cache Status
run: echo "Used cache ${{steps.load-cache-deps.outputs.used-cache}}"
- name: Run E2E Tests
uses: ./.github/workflows/actions/e2e-tests
with:
database-url: ${{ secrets.DATABASE_URL }}
better-auth-secret: ${{ secrets.BETTER_AUTH_SECRET }}
resend-api-key: ${{ secrets.RESEND_API_KEY }}
prod-base-url: ${{ secrets.PROD_BASE_URL }}
test-email: ${{ secrets.TEST_EMAIL }}
test-password: ${{ secrets.TEST_PASSWORD }}

lint:
needs: [tests, e2e-tests]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Load & Cache Dependencies
id: load-cache-deps
uses: ./.github/workflows/actions/cache-deps
with:
caching: "true"
- name: Output Cache Status
run: echo "Used cache ${{steps.load-cache-deps.outputs.used-cache}}"
- name: Run Linter
run: pnpm lint
- name: Lint Status
run: echo "Linting completed successfully"
build:
needs: [tests, lint, e2e-tests]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Load & Cache Dependencies
id: load-cache-deps
uses: ./.github/workflows/actions/cache-deps
with:
caching: "true"
- name: Output Cache Status
run: echo "Used cache ${{steps.load-cache-deps.outputs.used-cache}}"
- name: Build Project
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
BETTER_AUTH_SECRET: ${{ secrets.BETTER_AUTH_SECRET }}
BETTER_AUTH_URL: http://localhost:3000
BETTER_AUTH_TRUSTED_ORIGINS: "http://localhost:3000,http://127.0.0.1:3000"
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
BASE_URL: http://localhost:3000
PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }}
run: pnpm build
- name: Build Status
run: echo "Build completed successfully"

73 changes: 0 additions & 73 deletions .github/workflows/run-tests.yml

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,4 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts
cypress/downloads
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"cSpell.words": [
"gsap",
"oklch"
]
}
4 changes: 3 additions & 1 deletion components.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,7 @@
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
"registries": {
"@react-bits": "https://reactbits.dev/r/{name}.json"
}
}
Loading