Skip to content

Test more Ruby gaps; fix CMS export and conflict policy bugs - #12111

Merged
nbudin merged 1 commit into
mainfrom
test-ruby-gaps
Oct 6, 2026
Merged

nbudin merged 1 commit into
mainfrom
test-ruby-gaps

Conversation

@nbudin

@nbudin nbudin commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

What

Tests for five Ruby areas that had little or no coverage, and fixes for two bugs in the CMS content tooling:

  • ExportCmsContentSetService crashed when exporting with an inherited content set. To skip items that are unchanged from the inherited version it compared attributes with transform_values(&:strip), but items have boolean attributes (pages have skip_clickwrap_agreement, hidden_from_search), so false.strip raised and the service returned a failed result. Any export that inherits from a set containing the same item (including the default inherit: ["standard"]) was affected. Only strings are stripped now.
  • CmsContentLoaders::ConflictPolicies::Update had two bugs. (1) The same .strip on non-strings (false&.strip still raises, since &. only guards nil). (2) For an item that wasn't in the previous load, all_previous_content_keys did previous_content_by_identifier.flat_map(&:keys) on a Hash, which yields [key, value] arrays, so it always raised NoMethodError: undefined method 'keys' for Array. Also an item with no model in the database now just overwrites rather than being compared. Nothing in the app instantiates this policy (it's an option to the loaders, presumably used from scripts), so the impact is limited.

Tests (75 across the files below):

  • ExportCmsContentSetService: validation, metadata (root page, default layout, variables, navigation items), files written, inheriting (unchanged items skipped, whitespace ignored, edited items kept), root site export, and a round trip through LoadCmsContentSetService. It writes to a temp directory.
  • ConflictPolicies::Update: overwrite/skip decisions, whitespace, symbol keys, non-text attributes, skipped item messages, items missing from the previous load.
  • SetupUserConProfileService: name, needs_update, form defaults, copying from earlier conventions of the same organization (most recent wins, gravatar, not from other organizations/people).
  • CalendarsController: the iCal feed (name, timezone, event times/summary/description/url, waitlisted marker, title suffix, rooms, withdrawn signups excluded, wrong secret / other convention not found).
  • SearchResult: events, pages, attendees and proposals by permission, limits and totals, hidden items, entry titles.

I also cleared the existing rubocop offenses in the two service files I touched (the pre-commit hook won't let a touched file keep them): frozen string literal, to_h, a memoized variable name, and super() in the policy's initializer.

Testing

All new tests pass (75 tests, 135 assertions); rubocop clean on the touched files.

🤖 Generated with Claude Code

https://claude.ai/code/session_013mDr1nhgyzST2iPzCzMcCd

- ExportCmsContentSetService: exporting with an inherited content set
  failed whenever an item also existed in it, because the comparison
  called String#strip on every attribute and pages (and others) have
  boolean attributes. Only strings are stripped now.
- CmsContentLoaders::ConflictPolicies::Update: the same .strip on
  booleans (false&.strip still raises), and the fallback for items that
  weren't in the previous load called flat_map(&:keys) on a Hash, which
  yields [key, value] arrays, so it always raised. Also an item with no
  model in the database now just overwrites instead of being compared.

Tests: ExportCmsContentSetService (including inheriting and a round trip
through LoadCmsContentSetService), the Update conflict policy,
SetupUserConProfileService, CalendarsController and SearchResult.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mDr1nhgyzST2iPzCzMcCd
@nbudin nbudin added bug ruby patch Bumps the patch version number on release labels Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Report: Only Changed Files listed

Package Base Coverage New Coverage Difference
app/controllers/application_controller.rb 🟢 76.07% 🟢 80.34% 🟢 4.27%
app/controllers/calendars_controller.rb 🔴 0% 🟢 100% 🟢 100%
app/controllers/csv_exports_controller.rb 🔴 47.46% 🟢 100% 🟢 52.54%
app/controllers/graphql_controller.rb 🟢 86.05% 🟢 87.21% 🟢 1.16%
app/controllers/oauth_sessions_controller.rb 🔴 44% 🟢 100% 🟢 56%
app/controllers/sns_notifications_controller.rb 🔴 0% 🟢 96.67% 🟢 96.67%
app/controllers/stripe_account_controller.rb 🔴 0% 🟢 100% 🟢 100%
app/controllers/stripe_webhooks_controller.rb 🔴 0% 🟢 100% 🟢 100%
app/graphql/concerns/context_accessors.rb 🟢 90% 🟢 95% 🟢 5%
app/graphql/concerns/order_entry_inputs.rb 🔴 22.22% 🟢 88.89% 🟢 66.67%
app/graphql/concerns/scheduled_value_inputs.rb 🔴 28.57% 🟢 100% 🟢 71.43%
app/graphql/intercode_schema.rb 🟠 61.84% 🟢 85.53% 🟢 23.69%
app/graphql/money_helper.rb 🟠 60% 🟢 100% 🟢 40%
app/graphql/mutations/base_mutation.rb 🟢 81.03% 🟢 89.66% 🟢 8.63%
app/graphql/mutations/create_order.rb 🔴 35.71% 🟢 100% 🟢 64.29%
app/graphql/mutations/create_signup_ranked_choice.rb 🟠 62.5% 🟢 91.67% 🟢 29.17%
app/graphql/mutations/create_signup_request.rb 🟠 57.14% 🟢 90.48% 🟢 33.34%
app/graphql/mutations/create_user_con_profile.rb 🔴 32% 🟢 100% 🟢 68%
app/graphql/mutations/create_user_signup.rb 🟠 51.72% 🟢 93.1% 🟢 41.38%
app/graphql/mutations/merge_users.rb 🟠 50% 🟢 100% 🟢 50%
app/graphql/mutations/submit_order.rb 🟠 52.63% 🟢 100% 🟢 47.37%
app/graphql/mutations/update_convention.rb 🔴 30.43% 🟢 100% 🟢 69.57%
app/graphql/mutations/withdraw_user_signup.rb 🟠 60% 🟢 100% 🟢 40%
app/graphql/sources/signup_choice.rb 🔴 0% 🟢 100% 🟢 100%
app/graphql/sources/simulated_skip_reason.rb 🔴 0% 🟢 100% 🟢 100%
app/graphql/sources/waitlist_position.rb 🔴 0% 🟢 100% 🟢 100%
app/graphql/types/date_type.rb 🟠 71.43% 🟢 100% 🟢 28.57%
app/graphql/types/json.rb 🟢 77.78% 🟢 88.89% 🟢 11.11%
app/javascript/AppRoot.tsx 🔴 6.12% 🔴 8.16% 🟢 2.04%
app/javascript/Authentication/AccountFormContent.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/DeviseForgotPasswordPage.tsx 🔴 0% 🟢 85.19% 🟢 85.19%
app/javascript/Authentication/DeviseSignInPage.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/DeviseSignUpPage.tsx 🔴 0% 🟢 95.92% 🟢 95.92%
app/javascript/Authentication/EditUser.tsx 🔴 0% 🟢 86.05% 🟢 86.05%
app/javascript/Authentication/OAuthCallback.tsx 🔴 0% 🟢 96.77% 🟢 96.77%
app/javascript/Authentication/PasswordConfirmationInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/PasswordInputWithStrengthCheck.tsx 🔴 0% 🟢 82.35% 🟢 82.35%
app/javascript/Authentication/ResetPassword.tsx 🔴 0% 🟢 96% 🟢 96%
app/javascript/Authentication/SignInButton.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/SignOutButton.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/SignUpButton.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/UserFormFields.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/authenticationManager.ts 🔴 16.33% 🟢 100% 🟢 83.67%
app/javascript/Authentication/openid.ts 🔴 33.33% 🟢 100% 🟢 66.67%
app/javascript/Authentication/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/useAfterSessionChange.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/useAuthorizationRequired.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Authentication/useSignInContext.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/AuthenticityTokensContext.tsx 🔴 33.33% 🟢 100% 🟢 66.67%
app/javascript/BuiltInFormControls/AdminNotes.tsx 🔴 0% 🟢 87.5% 🟢 87.5%
app/javascript/BuiltInFormControls/EmailAliasInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/BuiltInFormControls/EventCategorySelect.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/BuiltInFormControls/GraphQLAsyncSelect.tsx 🔴 0% 🔴 37.5% 🟢 37.5%
app/javascript/BuiltInFormControls/InPlaceEditor.tsx 🟢 91.67% 🟢 93.75% 🟢 2.08%
app/javascript/BuiltInFormControls/MarkdownInput.tsx 🔴 0% 🟠 66.67% 🟢 66.67%
app/javascript/BuiltInFormControls/MaximumEventProvidedTicketsOverrideEditor.tsx 🔴 0% 🔴 2.63% 🟢 2.63%
app/javascript/BuiltInFormControls/RoomSelect.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/BuiltInFormControls/ScheduledValueEditor.tsx 🔴 29.51% 🔴 42.62% 🟢 13.11%
app/javascript/BuiltInFormControls/UserConProfileSelect.tsx 🔴 0% 🔴 42.86% 🟢 42.86%
app/javascript/BuiltInFormControls/selectDefaultQueries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/BuiltInForms/FileUploadForm.tsx 🔴 0% 🟢 80% 🟢 80%
app/javascript/BuiltInForms/RunFormFields.tsx 🔴 0% 🟢 89.19% 🟢 89.19%
app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview.tsx 🔴 45.45% 🟢 86.36% 🟢 40.91%
app/javascript/CmsAdmin/CmsFilesAdmin/FilePreview.tsx 🔴 0% 🔴 44.44% 🟢 44.44%
app/javascript/CmsAdmin/CmsPartialsAdmin/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/$id.ts 🔴 0% 🟢 94.74% 🟢 94.74%
app/javascript/EventAdmin/AdminNotesRoute.ts 🔴 0% 🟢 85.71% 🟢 85.71%
app/javascript/EventAdmin/CategorySpecificEventAdmin.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/CreateMultipleRunsRoute.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/DroppedEventAdmin.tsx 🔴 0% 🟢 95.24% 🟢 95.24%
app/javascript/EventAdmin/EditRun.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/EditRunModal.tsx 🔴 0% 🟢 86.67% 🟢 86.67%
app/javascript/EventAdmin/EventAdminEditEvent.tsx 🔴 0% 🟢 91.18% 🟢 91.18%
app/javascript/EventAdmin/EventAdminRow.tsx 🔴 0% 🟢 96.3% 🟢 96.3%
app/javascript/EventAdmin/EventAdminRunsTable.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/InputBuilders.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/NewEvent.tsx 🔴 0% 🟢 93.1% 🟢 93.1%
app/javascript/EventAdmin/NewRun.tsx 🔴 0% 🟠 54.84% 🟢 54.84%
app/javascript/EventAdmin/ProspectiveRunSchedule.tsx 🔴 0% 🟢 86.44% 🟢 86.44%
app/javascript/EventAdmin/RecurringEventAdmin.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/RecurringEventSection.tsx 🔴 0% 🟢 95.83% 🟢 95.83%
app/javascript/EventAdmin/RestoreEventRoute.ts 🔴 0% 🟢 83.33% 🟢 83.33%
app/javascript/EventAdmin/ScheduleMultipleRunsModal.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/SingleRunEventAdminList.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventAdmin/SingleRunRoute.ts 🔴 0% 🟢 91.67% 🟢 91.67%
app/javascript/EventAdmin/buildRunInputFromFormData.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/create.ts 🔴 0% 🟢 90% 🟢 90%
app/javascript/EventAdmin/drop.ts 🔴 0% 🟢 87.5% 🟢 87.5%
app/javascript/EventAdmin/getFormForEventCategory.ts 🔴 0% 🟢 90% 🟢 90%
app/javascript/EventAdmin/loaders.ts 🔴 20% 🔴 40% 🟢 20%
app/javascript/EventAdmin/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/useEventAdminCategory.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/useEventCategorySelection.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventAdmin/useEventFormWithCategorySelection.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventProposals/$id/admin_notes.ts 🔴 0% 🟢 87.5% 🟢 87.5%
app/javascript/EventProposals/$id/route.ts 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventProposals/$id/transition.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventProposals/CreateEventProposalModal.tsx 🔴 0% 🟢 90.24% 🟢 90.24%
app/javascript/EventProposals/EditEventProposal.tsx 🔴 0% 🟢 95.24% 🟢 95.24%
app/javascript/EventProposals/EventProposalForm.tsx 🔴 0% 🟢 94.74% 🟢 94.74%
app/javascript/EventProposals/EventProposalStatusUpdater.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventProposals/ProposeEventButton.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventProposals/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventProposals/route.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventRatings/RatingsHelp.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/EventCatalog/EventCatalogNavTabs.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/EventCatalog/EventList/EventCard.tsx 🔴 0% 🟢 98.18% 🟢 98.18%
app/javascript/EventsApp/EventCatalog/EventList/EventListCategoryDropdown.tsx 🔴 0% 🟢 88% 🟢 88%
app/javascript/EventsApp/EventCatalog/EventList/EventListEvents.tsx 🔴 0% 🟢 92.86% 🟢 92.86%
app/javascript/EventsApp/EventCatalog/EventList/EventListFilterableFormItemDropdown.tsx 🔴 0% 🔴 27.27% 🟢 27.27%
app/javascript/EventsApp/EventCatalog/EventList/EventListMyRatingSelector.tsx 🔴 0% 🟢 80% 🟢 80%
app/javascript/EventsApp/EventCatalog/EventList/EventListSortDropdown.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/EventCatalog/EventList/getSortedRuns.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/EventCatalog/EventList/index.tsx 🔴 0% 🟢 82.14% 🟢 82.14%
app/javascript/EventsApp/EventPage/CreateModeratedSignupModal.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/EventPage/RunCapacityGraphBucket.tsx 🟠 66.67% 🟠 72.22% 🟢 5.55%
app/javascript/EventsApp/EventPage/WithdrawMySignupModal.tsx 🔴 14.29% 🟢 97.44% 🟢 83.15%
app/javascript/EventsApp/EventPage/buildSignupOptions.ts 🟢 88.89% 🟢 98.41% 🟢 9.52%
app/javascript/EventsApp/EventPage/sortBuckets.ts 🟠 64.29% 🟢 92.86% 🟢 28.57%
app/javascript/EventsApp/EventPage/useSectionizedFormItems.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/MySignupQueue/NextRoundInfoBox.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/MySignupQueue/RankedChoiceUserSettings.tsx 🔴 0% 🟢 95.77% 🟢 95.77%
app/javascript/EventsApp/MySignupQueue/SignupQueueMessages.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/MySignupQueue/UserSignupQueue.tsx 🔴 0% 🟢 80% 🟢 80%
app/javascript/EventsApp/MySignupQueue/UserSignupQueueItem.tsx 🟠 51.16% 🟢 90.7% 🟢 39.54%
app/javascript/EventsApp/MySignupQueue/index.tsx 🔴 0% 🟢 92.31% 🟢 92.31%
app/javascript/EventsApp/MySignupQueue/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/RunList/RunListEventRun.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/RunList/index.tsx 🔴 0% 🟢 81.91% 🟢 81.91%
app/javascript/EventsApp/ScheduleApp.tsx 🔴 0% 🟢 75.9% 🟢 75.9%
app/javascript/EventsApp/ScheduleGrid/AvailabilityBar.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/AvailabilityUtils.tsx 🔴 48% 🟢 76% 🟢 28%
app/javascript/EventsApp/ScheduleGrid/CategoryLegend.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ConventionDayTabContainer.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventsApp/ScheduleGrid/FakeEventRun.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventsApp/ScheduleGrid/FullnessLegend.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/LayoutConstants.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/PersonalScheduleFiltersBar.tsx 🔴 0% 🟠 65.85% 🟢 65.85%
app/javascript/EventsApp/ScheduleGrid/RefreshButton.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/RunDetails.tsx 🔴 0% 🟠 73.08% 🟢 73.08%
app/javascript/EventsApp/ScheduleGrid/RunDisplay.tsx 🔴 0% 🟢 95.24% 🟢 95.24%
app/javascript/EventsApp/ScheduleGrid/Schedule.ts 🔴 0% 🟢 95.28% 🟢 95.28%
app/javascript/EventsApp/ScheduleGrid/ScheduleBlock.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleGrid.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridConfig.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridContext.tsx 🔴 0% 🟢 97.14% 🟢 97.14%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridEventRun.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridExtendedCounts.tsx 🔴 0% 🟢 93.55% 🟢 93.55%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridHeaderBlock.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridHour.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridLayout.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleGridRowHeader.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleLayout/ColumnReservation.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/ScheduleLayout/ColumnReservationSet.ts 🔴 0% 🟢 92.06% 🟢 92.06%
app/javascript/EventsApp/ScheduleGrid/ScheduleLayout/ScheduleLayoutBlock.ts 🔴 0% 🟢 84.95% 🟢 84.95%
app/javascript/EventsApp/ScheduleGrid/SignupStatusBadge.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/StylingUtils.ts 🔴 0% 🟢 93.94% 🟢 93.94%
app/javascript/EventsApp/ScheduleGrid/getCapacityThresholds.ts 🔴 0% 🟠 66.67% 🟢 66.67%
app/javascript/EventsApp/ScheduleGrid/getFullnessClass.ts 🔴 0% 🟢 93.33% 🟢 93.33%
app/javascript/EventsApp/ScheduleGrid/index.tsx 🔴 0% 🟢 93.75% 🟢 93.75%
app/javascript/EventsApp/ScheduleGrid/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/ScheduleGrid/useLayoutForTimespan.ts 🔴 0% 🟢 91.67% 🟢 91.67%
app/javascript/EventsApp/TeamMemberAdmin/ProvidableTicketTypeSelection.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/TeamMemberAdmin/ProvideTicketUtils.ts 🔴 0% 🟢 90.91% 🟢 90.91%
app/javascript/EventsApp/TeamMemberAdmin/TicketingStatusDescription.tsx 🔴 0% 🟠 71.43% 🟢 71.43%
app/javascript/EventsApp/conventionDayUrls.ts 🔴 0% 🟢 97.22% 🟢 97.22%
app/javascript/EventsApp/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/runTimeFormatting.ts 🟢 82.76% 🟢 86.21% 🟢 3.45%
app/javascript/EventsApp/teamMembersForDisplay.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/EventsApp/useFilterableFormItems.ts 🔴 0% 🟢 92% 🟢 92%
app/javascript/EventsApp/useMergeCategoriesIntoEvents.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormAdmin/$id/edit/section/$sectionId/NewFormItemModal.tsx 🔴 0% 🟢 88.52% 🟢 88.52%
app/javascript/FormAdmin/FormEditorContexts.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormAdmin/FormItemUtils.ts 🔴 24% 🟢 95% 🟢 71%
app/javascript/FormAdmin/ItemEditors/FormItemIdentifierInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormAdmin/buildNewFormItem.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemDisplays/FormItemDisplay.tsx 🔴 0% 🔴 21.43% 🟢 21.43%
app/javascript/FormPresenter/ItemDisplays/FreeTextItemDisplay.tsx 🔴 0% 🔴 23.08% 🟢 23.08%
app/javascript/FormPresenter/ItemFilters/FormItemFilter.tsx 🔴 0% 🔴 23.08% 🟢 23.08%
app/javascript/FormPresenter/ItemFilters/MultipleChoiceItemFilter.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemInputs/AgeRestrictionsInput.tsx 🔴 0% 🟢 85% 🟢 85%
app/javascript/FormPresenter/ItemInputs/CaptionLegend.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemInputs/DateItemInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemInputs/EventEmailInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemInputs/FormItemInput.tsx 🔴 44.44% 🟢 88.89% 🟢 44.45%
app/javascript/FormPresenter/ItemInputs/FreeTextItemInput.tsx 🟠 67.86% 🟢 92.86% 🟢 25%
app/javascript/FormPresenter/ItemInputs/MultipleChoiceItemInput.tsx 🔴 1.37% 🟢 98.61% 🟢 97.24%
app/javascript/FormPresenter/ItemInputs/PermissionDisclosures.tsx 🔴 10.71% 🔴 42.86% 🟢 32.15%
app/javascript/FormPresenter/ItemInputs/RegistrationPolicyItemInput.tsx 🔴 7.14% 🟠 71.43% 🟢 64.29%
app/javascript/FormPresenter/ItemInputs/RequiredIndicator.tsx 🟠 66.67% 🟢 100% 🟢 33.33%
app/javascript/FormPresenter/ItemInputs/TimeblockPreferenceCell.tsx 🔴 0% 🟢 92.31% 🟢 92.31%
app/javascript/FormPresenter/ItemInputs/TimeblockPreferenceItemInput.tsx 🔴 0% 🟢 95.45% 🟢 95.45%
app/javascript/FormPresenter/ItemInputs/TimespanItemInput.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/ItemInteractionTracker.tsx 🟢 90.91% 🟢 100% 🟢 9.09%
app/javascript/FormPresenter/Layouts/FormBody.tsx 🟠 57.58% 🟢 81.82% 🟢 24.24%
app/javascript/FormPresenter/Layouts/FormFooter.tsx 🔴 0% 🟠 67.74% 🟢 67.74%
app/javascript/FormPresenter/Layouts/FormHeader.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/Layouts/FormPresenter.tsx 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/FormPresenter/Layouts/FormProgress.tsx 🔴 0% 🟢 81.82% 🟢 81.82%
app/javascript/FormPresenter/Layouts/FormSection.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/SectionTraversalContext.tsx 🔴 0% 🟠 66.67% 🟢 66.67%
app/javascript/FormPresenter/StaticTextItem.tsx 🔴 0% 🟠 66.67% 🟢 66.67%
app/javascript/FormPresenter/TimeblockTypes.ts 🔴 0% 🟢 83.33% 🟢 83.33%
app/javascript/FormPresenter/TimeblockUtils.ts 🔴 0% 🟠 71.74% 🟢 71.74%
app/javascript/FormPresenter/TimespanItemUtils.ts 🔴 8.33% 🔴 41.67% 🟢 33.34%
app/javascript/FormPresenter/index.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/FormPresenter/useAutocommitFormResponseOnChange.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/GeneratedIdUtils.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Gravatar.tsx 🟠 66.67% 🟢 100% 🟢 33.33%
app/javascript/Models/Form.ts 🔴 45.45% 🟠 54.55% 🟢 9.1%
app/javascript/Models/FormItem.ts 🔴 16% 🔴 18% 🟢 2%
app/javascript/Models/deserializeFormResponse.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/PlainTextDisplay.tsx 🔴 0% 🟠 71.43% 🟢 71.43%
app/javascript/RegistrationPolicy/RegistrationPolicy.ts 🟠 72.73% 🟢 81.82% 🟢 9.09%
app/javascript/RegistrationPolicy/RegistrationPolicyBucket.ts 🟠 66.67% 🟢 93.33% 🟢 26.66%
app/javascript/RenderingUtils.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/ScheduledValueUtils.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/SignupRoundUtils.ts 🔴 13.33% 🟢 86.67% 🟢 73.34%
app/javascript/SortableUtils.tsx 🟠 50% 🟢 100% 🟢 50%
app/javascript/Store/ApplyCouponControl.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/Cart/CartContents.tsx 🔴 0% 🟢 93.75% 🟢 93.75%
app/javascript/Store/Cart/coupon_applications/$id.ts 🔴 0% 🟠 75% 🟢 75%
app/javascript/Store/Cart/coupon_applications/route.ts 🔴 0% 🟢 91.67% 🟢 91.67%
app/javascript/Store/Cart/index.tsx 🔴 0% 🟢 95.56% 🟢 95.56%
app/javascript/Store/Cart/order_entries/$id.ts 🔴 0% 🟢 92.86% 🟢 92.86%
app/javascript/Store/CouponAdmin/CouponForm.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/CouponAdmin/EditCouponModal.tsx 🔴 0% 🟢 97.22% 🟢 97.22%
app/javascript/Store/CouponAdmin/NewCouponModal.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/CouponAdmin/buildCouponInput.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/CouponAdmin/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/CouponAdmin/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/CurrencySelect.tsx 🟢 90% 🟢 100% 🟢 10%
app/javascript/Store/InPlaceMoneyEditor.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/MoneyInput.tsx 🔴 3.45% 🟢 100% 🟢 96.55%
app/javascript/Store/OrderAdmin/$id.tsx 🔴 0% 🟠 58.82% 🟢 58.82%
app/javascript/Store/OrderAdmin/AdminOrderEntriesTable.tsx 🔴 0% 🟢 80% 🟢 80%
app/javascript/Store/OrderAdmin/AdminOrderForm.tsx 🔴 0% 🟢 92.86% 🟢 92.86%
app/javascript/Store/OrderAdmin/EditOrderModal.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/OrderAdmin/NewOrderModal.tsx 🔴 0% 🟢 81.58% 🟢 81.58%
app/javascript/Store/OrderAdmin/cancel.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/OrderAdmin/coupon_applications/$couponApplicationId.ts 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/Store/OrderAdmin/coupon_applications/route.ts 🔴 0% 🟢 91.67% 🟢 91.67%
app/javascript/Store/OrderAdmin/index.tsx 🔴 0% 🔴 35.9% 🟢 35.9%
app/javascript/Store/OrderAdmin/mark_paid.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/OrderAdmin/order_entries/$orderEntryId.ts 🔴 0% 🟢 92.86% 🟢 92.86%
app/javascript/Store/OrderAdmin/order_entries/route.ts 🔴 0% 🟢 90.91% 🟢 90.91%
app/javascript/Store/OrderAdmin/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/OrderHistory.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/OrderPaymentModal.tsx 🔴 0% 🟢 97.06% 🟢 97.06%
app/javascript/Store/OrderSummary.tsx 🔴 0% 🟢 97.37% 🟢 97.37%
app/javascript/Store/ProductAdmin/$id.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductAdmin/AdminProductCard.tsx 🔴 0% 🟢 85.71% 🟢 85.71%
app/javascript/Store/ProductAdmin/AdminProductVariantEditRow.tsx 🔴 0% 🟢 83.33% 🟢 83.33%
app/javascript/Store/ProductAdmin/AdminProductVariantsTable.tsx 🔴 0% 🟢 77.78% 🟢 77.78%
app/javascript/Store/ProductAdmin/EditAdminProductCard.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductAdmin/EditPricingStructureModal.tsx 🔴 0% 🟢 91.67% 🟢 91.67%
app/javascript/Store/ProductAdmin/EditProductForm.tsx 🔴 0% 🟢 96% 🟢 96%
app/javascript/Store/ProductAdmin/EditingProductTypes.ts 🔴 0% 🟠 50% 🟢 50%
app/javascript/Store/ProductAdmin/PricingStructureForm.tsx 🔴 0% 🟢 83.87% 🟢 83.87%
app/javascript/Store/ProductAdmin/PricingStructureInput.tsx 🔴 0% 🟠 75% 🟢 75%
app/javascript/Store/ProductAdmin/index.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductAdmin/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductAdmin/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductOrderForm.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/ProductPage.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/adminProductFields.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/buildMoneyInput.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/buildProductInput.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/describeCoupon.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/describePricingStructure.tsx 🔴 0% 🟢 90.77% 🟢 90.77%
app/javascript/Store/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Store/sortProductVariants.ts 🔴 9.09% 🟢 90.91% 🟢 81.82%
app/javascript/Store/useSubmitOrder.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/Tables/FilterUtils.ts 🔴 16.07% 🔴 48.21% 🟢 32.14%
app/javascript/Tables/TableUtils.ts 🟠 66.67% 🟢 77.78% 🟢 11.11%
app/javascript/Tables/useReactRouterReactTable.tsx 🟠 63.64% 🟢 97.73% 🟢 34.09%
app/javascript/TimeUtils.ts 🟠 69.81% 🟢 88.68% 🟢 18.87%
app/javascript/Timespan.ts 🟢 85.37% 🟢 87.8% 🟢 2.43%
app/javascript/TimespanUtils.ts 🔴 35% 🟠 60% 🟢 25%
app/javascript/UIComponents/BlockPartial.tsx 🔴 0% 🔴 44.12% 🟢 44.12%
app/javascript/URLUtils.ts 🔴 0% 🟢 83.33% 🟢 83.33%
app/javascript/UserConProfiles/ConvertToEventProvidedTicketModal.tsx 🔴 0% 🟢 89.47% 🟢 89.47%
app/javascript/UserConProfiles/EditUserConProfile.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/UserConProfiles/UserConProfileAdminDisplay.tsx 🔴 0% 🔴 34.38% 🟢 34.38%
app/javascript/UserConProfiles/UserConProfileForm.tsx 🔴 0% 🟢 100% 🟢 100%
app/javascript/UserConProfiles/buildFormStateFromData.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/UserConProfiles/mutations.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/UserConProfiles/queries.generated.ts 🔴 0% 🟢 100% 🟢 100%
app/javascript/formatMoney.ts 🔴 0% 🟢 88.89% 🟢 88.89%
app/javascript/parseCmsContent.tsx 🔴 40% 🔴 44% 🟢 4%
app/javascript/parsePageContent.tsx 🔴 4.42% 🟢 94.69% 🟢 90.27%
app/javascript/parseResponseErrors.tsx 🔴 0% 🟠 57.14% 🟢 57.14%
app/javascript/scrollToLocationHash.ts 🔴 0% 🔴 33.33% 🟢 33.33%
app/javascript/setupI18Next.ts 🟠 65.52% 🟢 89.66% 🟢 24.14%
app/javascript/useAsyncFetcher.ts 🔴 0% 🔴 39.13% 🟢 39.13%
app/javascript/useAsyncFunction.ts 🟢 93.75% 🟢 94.74% 🟢 0.99%
app/javascript/useIntercodeApolloClient.ts 🔴 13.89% 🟢 90.28% 🟢 76.39%
app/jobs/receive_sns_email_delivery_job.rb 🔴 0% 🟠 66.67% 🟢 66.67%
app/jobs/sync_email_forwarding_for_domain_job.rb 🟢 80% 🟢 100% 🟢 20%
app/liquid_drops/bucket_availability_drop.rb 🔴 0% 🟢 77.78% 🟢 77.78%
app/liquid_drops/run_availability_drop.rb 🔴 0% 🟠 70.59% 🟢 70.59%
app/models/concerns/event_email.rb 🟠 54.05% 🟢 75.68% 🟢 21.63%
app/models/concerns/names.rb 🟠 62.5% 🟢 93.75% 🟢 31.25%
app/models/coupon.rb 🟠 66.67% 🟠 70.37% 🟢 3.7%
app/models/email_route.rb 🟢 79.31% 🟢 96.55% 🟢 17.24%
app/models/event.rb 🟢 80.41% 🟢 88.66% 🟢 8.25%
app/models/form_item.rb 🟢 90.91% 🟢 94.55% 🟢 3.64%
app/models/registration_policy.rb 🟢 98.7% 🟢 98.72% 🟢 0.02%
app/models/root_site.rb 🟠 59.38% 🟢 87.5% 🟢 28.12%
app/models/search_result.rb 🔴 0% 🟢 100% 🟢 100%
app/models/signup_request.rb 🟢 95.45% 🟢 96.3% 🟢 0.85%
app/models/team_member.rb 🟢 82.14% 🟢 85.71% 🟢 3.57%
app/models/user.rb 🟢 92.59% 🟢 96.3% 🟢 3.71%
app/models/user_con_profile.rb 🟠 68.14% 🟠 70.8% 🟢 2.66%
app/notifiers/orders/cancelled_notifier.rb 🟢 86.67% 🟢 93.33% 🟢 6.66%
app/policies/application_policy.rb 🟢 93.94% 🟢 94.74% 🟢 0.8%
app/policies/coupon_application_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/coupon_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/department_policy.rb 🟠 50% 🟢 88.89% 🟢 38.89%
app/policies/email_route_policy.rb 🟠 66.67% 🟢 100% 🟢 33.33%
app/policies/event_rating_policy.rb 🟢 78.57% 🟢 100% 🟢 21.43%
app/policies/notification_template_policy.rb 🟠 50% 🟢 100% 🟢 50%
app/policies/order_entry_policy.rb 🟢 80% 🟢 100% 🟢 20%
app/policies/order_policy.rb 🟢 94.87% 🟢 97.37% 🟢 2.5%
app/policies/ranked_choice_decision_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/ranked_choice_user_constraint_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/signup_change_policy.rb 🟠 66.67% 🟢 100% 🟢 33.33%
app/policies/signup_ranked_choice_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/signup_round_policy.rb 🔴 0% 🟢 100% 🟢 100%
app/policies/user_activity_alert_policy.rb 🟢 77.78% 🟢 100% 🟢 22.22%
app/policies/user_con_profile_policy.rb 🟢 91.55% 🟢 100% 🟢 8.45%
app/presenters/form_response_presenter.rb 🟢 88.46% 🟢 94.23% 🟢 5.77%
app/presenters/run_availability_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/conventions_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/coupons_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/email_routes_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/event_proposals_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/events_table_results_presenter.rb 🟠 57.63% 🟢 100% 🟢 42.37%
app/presenters/tables/form_items.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/orders_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/ranked_choice_decisions_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/runs_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/signup_changes_table_results_presenter.rb 🟢 79.31% 🟢 100% 🟢 20.69%
app/presenters/tables/signup_requests_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/signups_table_results_presenter.rb 🟠 67.16% 🟢 100% 🟢 32.84%
app/presenters/tables/table_results_presenter.rb 🟢 77.88% 🟢 100% 🟢 22.12%
app/presenters/tables/user_con_profiles_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/presenters/tables/users_table_results_presenter.rb 🔴 0% 🟢 100% 🟢 100%
app/services/cancel_order_service.rb 🔴 0% 🟢 100% 🟢 100%
app/services/cms_content_loaders/conflict_policies/update.rb 🔴 0% 🟢 100% 🟢 100%
app/services/cms_content_loaders/conflict_policy.rb 🔴 0% 🟠 66.67% 🟢 66.67%
app/services/cms_content_storage_adapters/base.rb 🟠 72.6% 🟢 83.56% 🟢 10.96%
app/services/cms_content_storage_adapters/cms_files.rb 🟠 58.82% 🟠 64.71% 🟢 5.89%
app/services/cms_content_storage_adapters/cms_layouts.rb 🟢 88.24% 🟢 100% 🟢 11.76%
app/services/cms_content_storage_adapters/cms_partials.rb 🟢 88.24% 🟢 100% 🟢 11.76%
app/services/cms_content_storage_adapters/pages.rb 🟢 88.24% 🟢 100% 🟢 11.76%
app/services/concerns/split_ticket_order.rb 🔴 0% 🟢 100% 🟢 100%
app/services/connect_stripe_account_service.rb 🔴 0% 🟢 100% 🟢 100%
app/services/delete_ticket_service.rb 🔴 0% 🟢 96.15% 🟢 96.15%
app/services/email_forwarding_router.rb 🟠 58.42% 🟢 97.85% 🟢 39.43%
app/services/export_cms_content_set_service.rb 🔴 0% 🟢 100% 🟢 100%
app/services/forward_email_via_ses_service.rb 🔴 0% 🟢 98.57% 🟢 98.57%
app/services/load_cms_content_set_service.rb 🟢 97.5% 🟢 100% 🟢 2.5%
app/services/merge_users_service.rb 🟢 96.25% 🟢 100% 🟢 3.75%
app/services/receive_sns_email_delivery_service.rb 🔴 0% 🟢 88.33% 🟢 88.33%
app/services/setup_user_con_profile_service.rb 🔴 0% 🟢 100% 🟢 100%
app/services/submit_order_service.rb 🟢 87.1% 🟢 93.55% 🟢 6.45%
app/services/sync_forward_email_service.rb 🔴 0% 🟢 92.86% 🟢 92.86%
config/initializers/cors.rb 🔴 47.06% 🟢 94.12% 🟢 47.06%
config/initializers/doorkeeper.rb 🟢 87.5% 🟢 90.63% 🟢 3.13%
Overall Coverage 🟢 58.36% 🟢 64.67% 🟢 6.31%

Minimum allowed coverage is 0%, this run produced 64.67%

@nbudin
nbudin merged commit 8d9a823 into main Oct 6, 2026
25 checks passed
@nbudin
nbudin deleted the test-ruby-gaps branch October 6, 2026 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug patch Bumps the patch version number on release ruby

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant