Skip to content

Conversation

@eunjae-lee
Copy link
Contributor

@eunjae-lee eunjae-lee commented Nov 26, 2025

What does this PR do?

Fixes a bug in the seed-insights script where AWAITING_HOST status was randomly assigned to bookings along with a userId, which violates the correct behavior of instant meetings.

Problem:

  • The seed script randomly picked from all 5 booking statuses (including AWAITING_HOST)
  • When AWAITING_HOST was selected, the script still assigned a userId
  • Real instant meetings with AWAITING_HOST status should have userId = NULL until a host joins
  • This created incorrect test data that doesn't match production behavior

Solution:

  • Filter out AWAITING_HOST from BookingStatus values using Object.values(BookingStatus).filter()
  • This approach is more maintainable than listing valid statuses explicitly - if new statuses are added in the future, they will automatically be included
  • Moved validStatusesForSeed to module level so it's calculated once at load time instead of on every shuffle call
  • Added comments explaining why this status requires special handling

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A - seed script only.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works. N/A - this is a seed script for test data generation.

How should this be tested?

  1. Run the seed script: yarn seed-insights
  2. Verify no AWAITING_HOST bookings are created with a userId:
SELECT COUNT(*) FROM "Booking" 
WHERE status = 'awaiting_host' AND "userId" IS NOT NULL 
AND "createdAt" > NOW() - INTERVAL '1 day';
-- Should return 0 for newly seeded data
  1. Verify other statuses are still generated:
SELECT status, COUNT(*) FROM "Booking" 
WHERE "createdAt" > NOW() - INTERVAL '1 day' 
GROUP BY status;
-- Should show ACCEPTED, PENDING, CANCELLED, REJECTED (but not AWAITING_HOST)

Checklist

  • I have read the contributing guide
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have checked if my changes generate no new warnings

Link to Devin run: https://app.devin.ai/sessions/08f634e7210d415982d71c8f687b4468
Requested by: [email protected] (@eunjae-lee)

AWAITING_HOST status requires special handling for instant meetings:
- userId must be NULL (not assigned until host joins)
- Requires InstantMeetingToken to be created
- Only used for actual instant meetings via InstantBookingCreateService

This fix prevents the seed script from creating invalid test data where
AWAITING_HOST bookings have a userId assigned, which doesn't match
production behavior.

Co-Authored-By: [email protected] <[email protected]>
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@keithwillcode keithwillcode added consumer core area: core, team members only labels Nov 26, 2025
More maintainable approach - if new statuses are added in the future,
they will automatically be included in seed data generation.

Co-Authored-By: [email protected] <[email protected]>
@vercel
Copy link

vercel bot commented Nov 26, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
cal Ignored Ignored Nov 26, 2025 4:14pm
cal-eu Ignored Ignored Nov 26, 2025 4:14pm

Calculate the filtered statuses once at module load instead of on every
shuffle call for better performance.

Co-Authored-By: [email protected] <[email protected]>
@eunjae-lee eunjae-lee marked this pull request as ready for review November 26, 2025 16:15
@graphite-app graphite-app bot requested a review from a team November 26, 2025 16:15
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

@github-actions
Copy link
Contributor

E2E results are ready!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consumer core area: core, team members only ready-for-e2e size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants