* chore: version existing bookings as 2024-04-15 * feat: initialize bookings version 2024-08-13 * feat: Create and reschedule booking inputs logic * feat: create booking * refactor: create booking response * feat: reschedule booking * chore: update language input * feat: recurring booking * refactor: add booking status in response * refactor: recurring bookings * feat: get booking by uid * wip: get event types * feat: fetch by multiple status filters and sort * feat: fetch by teamId, teamIds, eventTypeId, eventTypeIds * wip: filter by attendee email * feat: filter by attendee email * feat: filter by attendee name * feat: date range filter * chore: format get bookings output * chore: finish main merge * feat: handle instant bookings * refactor: separate reschedule endpoint * feat: cancel endpoint * feat: mark absent host or attendees * chore: dont expose metadata for now * chore: add hostId to response * fix: metadata * feat: bill bookings * feat: cancellationReason * feat: rescheduling reason * handle already busy booking error * test: create new booking * fix: handleNewRecurringBooking ignoring noEmail * test: recurring bookings * test: get individual bookings * fix: cancel email sent if arePlatformEmailsEnabled=false but platformClientId is undefined * tests: cancel, reschedule, mark absent * fix: generateIcsFile null pointer exception * cancel test * error msg improve * tests: team event type creation and teamId, teamIds filters * test: cancel recurring booking * refactor: make hosts and attendees an array * sort by asc start * simplify * refactor: absent * fix: make work with api key * test * ts remove any * feat: BookingUidGuard * fix: recurring booking no email * fix: legacy bookings recurring noEmail * add swagger * retrigger build * fix: atom booker work with v2 * docs: exclude old controller from docs * refactor: make eventTypeIds and teamIds getBookings query params comma separated string * docs: swagger for get bookings query * swagger docs * swagger docs * docs: document authorization header * refactor: remove unused attendee variable * refactor: remove unused check * refactor: remove unused attendee variable * refactor: spelling * use published platform libraries * fix: ci * fix: ci * fix: ci * fix: ci * cleanup script platform types * fix: use libraries from npm * chore: set test env vapid keys * fix: event type tests * fix: remove location from system fields * fix legacy event types * Revert "fix legacy event types" This reverts commit e64b473b73f7ef0fe88942cd87277d29a512b946. * Revert "fix: remove location from system fields" This reverts commit bee9a15cb27cd34705f34c427b6b50d51e3b7ee7. * Revert "fix: event type tests" This reverts commit fab1cb0f5eeb65e4f542bfbeb83849ceed7ba428. * update libraries * fix: increase node space for ci runner * fix: increase node space for ci runner * fix: increase node space for ci runner * readd swagger * ci * ci * refactor: increase idle worker memory jest e2e * fixup! refactor: increase idle worker memory jest e2e * fixup! fixup! refactor: increase idle worker memory jest e2e * refactor: split bookings e2e into smaller e2e files * fixup! refactor: split bookings e2e into smaller e2e files * fixup! fixup! refactor: split bookings e2e into smaller e2e files * fixup! fixup! fixup! refactor: split bookings e2e into smaller e2e files * fixup! Merge branch 'main' into v2-refactor-bookings * revert event types service * fix: remove resetModule, maxWorker 2 jest e2e config --------- Co-authored-by: Morgan Vernay <morgan@cal.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
83 lines
2.7 KiB
YAML
83 lines
2.7 KiB
YAML
name: E2E
|
|
on:
|
|
workflow_call:
|
|
env:
|
|
ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }}
|
|
API_KEY_PREFIX: ${{ secrets.CI_API_KEY_PREFIX }}
|
|
API_PORT: ${{ vars.CI_API_V2_PORT }}
|
|
CALCOM_LICENSE_KEY: ${{ secrets.CI_CALCOM_LICENSE_KEY }}
|
|
DAILY_API_KEY: ${{ secrets.CI_DAILY_API_KEY }}
|
|
DATABASE_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_READ_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_WRITE_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_DIRECT_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }}
|
|
IS_E2E: true
|
|
NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }}
|
|
NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }}
|
|
NODE_OPTIONS: --max-old-space-size=29000
|
|
REDIS_URL: "redis://localhost:6379"
|
|
STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
|
|
STRIPE_API_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
|
|
STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }}
|
|
STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
|
|
jobs:
|
|
e2e:
|
|
timeout-minutes: 20
|
|
name: E2E API v2
|
|
runs-on: buildjet-8vcpu-ubuntu-2204
|
|
services:
|
|
postgres:
|
|
image: postgres:13
|
|
credentials:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: calendso
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
redis:
|
|
image: redis:latest
|
|
credentials:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
ports:
|
|
- 6379:6379
|
|
options: >-
|
|
--health-cmd "redis-cli ping"
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/dangerous-git-checkout
|
|
- uses: ./.github/actions/yarn-install
|
|
- uses: ./.github/actions/yarn-playwright-install
|
|
- uses: ./.github/actions/cache-db
|
|
- name: Run Tests
|
|
working-directory: apps/api/v2
|
|
run: |
|
|
yarn test:e2e
|
|
EXIT_CODE=$?
|
|
echo "yarn test:e2e command exit code: $EXIT_CODE"
|
|
exit $EXIT_CODE
|
|
- name: Upload Test Results
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-results-api-v2
|
|
path: test-results
|