Skip to content
Merged
Changes from all commits
Commits
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
13 changes: 11 additions & 2 deletions functions-testcloud/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
* first for secrets (none), network calls (none), schedules (none) and side
* effects outside Firestore (Firebase Auth updateUser in the two profile
* callables); 5 more on 2026-10-01 for places and meetups, audited the same
* way (no secrets, no network calls, no schedules, Firestore only). Nothing
* way (no secrets, no network calls, no schedules, Firestore only); 2 more on
* 2026-10-14 for leaving and cancelling a meetup, audited the same way. Nothing
* that binds a secret, runs on a schedule, or deletes media belongs here; the
* guards below refuse the first two.
*
Expand Down Expand Up @@ -116,6 +117,14 @@ const EXPORTS = {
updateMeetupCallable: meetups.updateMeetupCallable,
joinMeetupCallable: meetups.joinMeetupCallable,
cancelMeetupCallable: meetups.cancelMeetupCallable,

// Authorized by the owner on 2026-10-14, so that leaving and cancelling a
// meetup can be tested with many people at once: the trigger that takes a
// leaver off the count, and the one that tells everyone on the roster the
// meetup is cancelled. Neither binds a secret, calls out or runs on a
// schedule; both only read and write Firestore.
onParticipantDeleted: meetups.onParticipantDeleted,
onMeetupUpdated: notifications.onMeetupUpdated,
Comment on lines +126 to +127

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Stop skipping the newly deployed meetup triggers

When the many-user scenario targets petnote-devtest, CLOUD is true and functions/scripts/scenario-many-users.mjs still unconditionally skips the participant deletion/rejoin checks at lines 639–643 and the cancellation-notification check at lines 687–690. Since skipped checks do not affect the script's exit status, a cloud run can report success without exercising either newly exported trigger, defeating the stated purpose of this change; update those cloud branches now that the functions are available.

Useful? React with 👍 / 👎.

};

// The test project never resolves to production's Cloudinary account. With
Expand All @@ -141,7 +150,7 @@ if (testAccount) {

// Exactly the authorized set: a name added here by accident is a deployment
// nobody approved.
const EXPECTED_COUNT = 39 + (testAccount ? MEDIA_FUNCTIONS.length : 0);
const EXPECTED_COUNT = 41 + (testAccount ? MEDIA_FUNCTIONS.length : 0);
if (Object.keys(EXPORTS).length !== EXPECTED_COUNT) {
throw new Error(`testcloud entry: ${Object.keys(EXPORTS).length} exports, ${EXPECTED_COUNT} authorized`);
}
Expand Down
Loading