-
Notifications
You must be signed in to change notification settings - Fork 1
Final Milestone Test Execution Reports ‐ Backend
sevdepekkose edited this page May 16, 2026
·
1 revision
This page contains the full verbose test execution output for the Backend layer.
go: downloading github.com/golang-jwt/jwt/v5 v5.3.1
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/resend/resend-go/v3 v3.2.0
go: downloading github.com/aws/aws-sdk-go-v2 v1.41.5
go: downloading golang.org/x/crypto v0.50.0
go: downloading github.com/gofiber/fiber/v2 v2.52.12
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.19.13
go: downloading github.com/aws/aws-sdk-go-v2/service/s3 v1.97.3
go: downloading github.com/jackc/pgx/v5 v5.9.0
go: downloading github.com/aws/smithy-go v1.24.2
go: downloading go.opentelemetry.io/otel v1.43.0
go: downloading golang.org/x/text v0.36.0
go: downloading github.com/stretchr/testify v1.11.1
go: downloading github.com/spf13/viper v1.21.0
go: downloading go.opentelemetry.io/contrib/bridges/otelslog v0.18.0
go: downloading github.com/gofiber/contrib/otelfiber/v2 v2.2.3
go: downloading github.com/testcontainers/testcontainers-go v0.41.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0
go: downloading github.com/testcontainers/testcontainers-go/modules/postgres v0.41.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0
go: downloading go.opentelemetry.io/contrib v1.20.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0
go: downloading go.opentelemetry.io/otel/log v0.19.0
go: downloading go.opentelemetry.io/otel/sdk/log v0.19.0
go: downloading go.opentelemetry.io/otel/sdk/metric v1.43.0
go: downloading go.opentelemetry.io/otel/sdk v1.43.0
go: downloading github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21
go: downloading github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21
go: downloading github.com/jackc/pgpassfile v1.0.0
go: downloading github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
go: downloading github.com/jackc/puddle/v2 v2.2.2
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/fsnotify/fsnotify v1.9.0
go: downloading github.com/go-viper/mapstructure/v2 v2.5.0
go: downloading github.com/sagikazarmark/locafero v0.12.0
go: downloading github.com/spf13/afero v1.15.0
go: downloading github.com/spf13/cast v1.10.0
go: downloading github.com/spf13/pflag v1.0.10
go: downloading github.com/mattn/go-colorable v0.1.14
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/mattn/go-runewidth v0.0.21
go: downloading github.com/valyala/bytebufferpool v1.0.0
go: downloading github.com/valyala/fasthttp v1.69.0
go: downloading github.com/go-logr/logr v1.4.3
go: downloading go.opentelemetry.io/otel/metric v1.43.0
go: downloading go.opentelemetry.io/otel/trace v1.43.0
go: downloading go.opentelemetry.io/proto/otlp v1.10.0
go: downloading google.golang.org/protobuf v1.36.11
go: downloading golang.org/x/sys v0.43.0
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21
go: downloading dario.cat/mergo v1.0.2
go: downloading github.com/cenkalti/backoff/v4 v4.3.0
go: downloading github.com/containerd/errdefs v1.0.0
go: downloading github.com/containerd/platforms v0.2.1
go: downloading github.com/cpuguy83/dockercfg v0.3.2
go: downloading github.com/docker/docker v28.5.2+incompatible
go: downloading github.com/docker/go-connections v0.6.0
go: downloading github.com/moby/go-archive v0.2.0
go: downloading github.com/moby/patternmatcher v0.6.0
go: downloading github.com/moby/term v0.5.2
go: downloading github.com/opencontainers/image-spec v1.1.1
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading golang.org/x/sync v0.20.0
go: downloading github.com/subosito/gotenv v1.6.0
go: downloading github.com/pelletier/go-toml/v2 v2.2.4
go: downloading go.yaml.in/yaml/v3 v3.0.4
go: downloading go.opentelemetry.io/auto/sdk v1.2.1
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading github.com/cespare/xxhash/v2 v2.3.0
go: downloading github.com/cenkalti/backoff/v5 v5.0.3
go: downloading google.golang.org/grpc v1.80.0
go: downloading github.com/andybalholm/brotli v1.2.0
go: downloading github.com/klauspost/compress v1.18.5
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0
go: downloading github.com/containerd/log v0.1.0
go: downloading github.com/clipperhouse/uax29/v2 v2.7.0
go: downloading github.com/docker/go-units v0.5.0
go: downloading github.com/morikuni/aec v1.0.0
go: downloading github.com/moby/docker-image-spec v1.3.1
go: downloading github.com/opencontainers/go-digest v1.0.0
go: downloading github.com/containerd/errdefs/pkg v0.3.0
go: downloading github.com/distribution/reference v0.6.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0
go: downloading github.com/magiconair/properties v1.8.10
go: downloading github.com/shirou/gopsutil/v4 v4.26.2
go: downloading github.com/moby/sys/sequential v0.6.0
go: downloading github.com/moby/sys/user v0.4.0
go: downloading golang.org/x/net v0.53.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9
go: downloading github.com/felixge/httpsnoop v1.0.4
go: downloading github.com/tklauser/go-sysconf v0.3.16
go: downloading github.com/ebitengine/purego v0.10.0
? github.com/bounswe/bounswe2026group11/backend/cmd/server [no test files]
=== RUN TestAuthOTPMailerSendRegistrationOTPBuildsLightweightTemplate
--- PASS: TestAuthOTPMailerSendRegistrationOTPBuildsLightweightTemplate (0.00s)
=== RUN TestAuthOTPMailerSendPasswordResetOTPBuildsPurposeSpecificCopy
--- PASS: TestAuthOTPMailerSendPasswordResetOTPBuildsPurposeSpecificCopy (0.00s)
=== RUN TestResendProviderSendBuildsSingleRecipientPayload
--- PASS: TestResendProviderSendBuildsSingleRecipientPayload (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/email 1.614s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/firebasepush [no test files]
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/hasher [no test files]
=== RUN TestTicketTokenManagerIssuesAndVerifiesClaims
--- PASS: TestTicketTokenManagerIssuesAndVerifiesClaims (0.00s)
=== RUN TestTicketTokenManagerRejectsExpiredToken
--- PASS: TestTicketTokenManagerRejectsExpiredToken (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/jwt 2.560s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/otp [no test files]
=== RUN TestBuildCommentCursorClauseUsesComparator
--- PASS: TestBuildCommentCursorClauseUsesComparator (0.00s)
=== RUN TestUnitOfWorkCommitsOnSuccess
--- PASS: TestUnitOfWorkCommitsOnSuccess (0.00s)
=== RUN TestUnitOfWorkRollsBackOnCallbackError
--- PASS: TestUnitOfWorkRollsBackOnCallbackError (0.00s)
=== RUN TestUnitOfWorkRollsBackOnCanceledContext
--- PASS: TestUnitOfWorkRollsBackOnCanceledContext (0.00s)
=== RUN TestUnitOfWorkReusesNestedTransaction
--- PASS: TestUnitOfWorkReusesNestedTransaction (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/postgres 1.791s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/ratelimit [no test files]
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/security [no test files]
=== RUN TestPresignPutObjectIncludesPublicReadACLHeader
--- PASS: TestPresignPutObjectIncludesPublicReadACLHeader (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/in/spaces 1.415s
=== RUN TestWriteErrorResolvesMessageKey
=== RUN TestWriteErrorResolvesMessageKey/english
=== RUN TestWriteErrorResolvesMessageKey/turkish
--- PASS: TestWriteErrorResolvesMessageKey (0.00s)
--- PASS: TestWriteErrorResolvesMessageKey/english (0.00s)
--- PASS: TestWriteErrorResolvesMessageKey/turkish (0.00s)
=== RUN TestWriteErrorWithoutTranslatorFallsBackToLiteral
--- PASS: TestWriteErrorWithoutTranslatorFallsBackToLiteral (0.00s)
=== RUN TestResolveLocaleHeaderOnly
=== RUN TestResolveLocaleHeaderOnly/no_header_→_default
=== RUN TestResolveLocaleHeaderOnly/single_tr
=== RUN TestResolveLocaleHeaderOnly/region_tr-TR
=== RUN TestResolveLocaleHeaderOnly/q-weighted_prefers_tr
=== RUN TestResolveLocaleHeaderOnly/unsupported_only_→_default
=== RUN TestResolveLocaleHeaderOnly/unsupported_then_supported_→_tr
--- PASS: TestResolveLocaleHeaderOnly (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/no_header_→_default (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/single_tr (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/region_tr-TR (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/q-weighted_prefers_tr (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/unsupported_only_→_default (0.00s)
--- PASS: TestResolveLocaleHeaderOnly/unsupported_then_supported_→_tr (0.00s)
=== RUN TestResolveLocaleUserPreferenceOverridesDefault
=== RUN TestResolveLocaleUserPreferenceOverridesDefault/no_header_falls_back_to_user_pref_tr
=== RUN TestResolveLocaleUserPreferenceOverridesDefault/explicit_header_wins_over_user_pref
=== RUN TestResolveLocaleUserPreferenceOverridesDefault/unsupported_header_falls_through_to_user_pref
--- PASS: TestResolveLocaleUserPreferenceOverridesDefault (0.00s)
--- PASS: TestResolveLocaleUserPreferenceOverridesDefault/no_header_falls_back_to_user_pref_tr (0.00s)
--- PASS: TestResolveLocaleUserPreferenceOverridesDefault/explicit_header_wins_over_user_pref (0.00s)
--- PASS: TestResolveLocaleUserPreferenceOverridesDefault/unsupported_header_falls_through_to_user_pref (0.00s)
=== RUN TestResolveLocaleNoPrefAndUnsupportedHeaderFallsToDefault
--- PASS: TestResolveLocaleNoPrefAndUnsupportedHeaderFallsToDefault (0.00s)
=== RUN TestRequireAuthMissingHeader
--- PASS: TestRequireAuthMissingHeader (0.00s)
=== RUN TestRequireAuthMalformedHeader
--- PASS: TestRequireAuthMalformedHeader (0.00s)
=== RUN TestRequireAuthInvalidToken
--- PASS: TestRequireAuthInvalidToken (0.00s)
=== RUN TestRequireAuthValidToken
--- PASS: TestRequireAuthValidToken (0.00s)
=== RUN TestRequireAdminMissingHeader
--- PASS: TestRequireAdminMissingHeader (0.00s)
=== RUN TestRequireAdminRejectsNonAdmin
--- PASS: TestRequireAdminRejectsNonAdmin (0.00s)
=== RUN TestRequireAdminAllowsAdmin
--- PASS: TestRequireAdminAllowsAdmin (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi 2.397s
=== RUN TestListUsersValidatesPagination
--- PASS: TestListUsersValidatesPagination (0.00s)
=== RUN TestListUsersParsesFilters
2026/05/16 14:42:40 INFO admin list query completed operation=admin.users.list user_id=2ae491e5-1178-4d8b-983b-d79334dd57ed result_count=0 limit=25 offset=50 has_next=false query_summary="limit=25 offset=50 q=ali status=active role=ADMIN created_from=2026-04-01T10:00:00Z created_to=<nil>"
--- PASS: TestListUsersParsesFilters (0.00s)
=== RUN TestListEventsValidatesEnumFilters
--- PASS: TestListEventsValidatesEnumFilters (0.00s)
=== RUN TestListTicketsParsesIDsAndStatus
2026/05/16 14:42:40 INFO admin list query completed operation=admin.tickets.list user_id=49c09c91-cb6d-48b9-89bb-c615137ad228 result_count=0 limit=50 offset=0 has_next=false query_summary="limit=50 offset=0 q=<nil> status=ACTIVE event_id=f24e5b3a-abd2-4d8f-9a65-99398b63ccab user_id=0b489cc9-df10-4bfa-a5d9-05c59b37eac7 participation_id=8dcab023-d701-48a6-b7ea-044e55fdaa0c created_from=<nil> created_to=<nil>"
--- PASS: TestListTicketsParsesIDsAndStatus (0.00s)
=== RUN TestCreateNotificationValidatesBody
--- PASS: TestCreateNotificationValidatesBody (0.00s)
=== RUN TestListNotificationsParsesFilters
2026/05/16 14:42:40 INFO admin list query completed operation=admin.notifications.list user_id=ce673ad5-6f13-4a43-b37b-66614bec17b5 result_count=0 limit=10 offset=20 has_next=false query_summary="limit=10 offset=20 q=ops user_id=6cae14ff-bffb-44e4-928e-a2d7b5bd2952 event_id=533a6c61-7815-497b-bc55-e6cba81b573d type=ADMIN is_read=false created_from=2026-05-01T10:00:00Z created_to=<nil>"
--- PASS: TestListNotificationsParsesFilters (0.00s)
=== RUN TestListNotificationsValidatesFilters
--- PASS: TestListNotificationsValidatesFilters (0.00s)
=== RUN TestCreateNotificationParsesInput
--- PASS: TestCreateNotificationParsesInput (0.00s)
=== RUN TestCreateParticipationDefaultsApproved
--- PASS: TestCreateParticipationDefaultsApproved (0.00s)
=== RUN TestCancelParticipationParsesID
--- PASS: TestCancelParticipationParsesID (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/admin_handler 2.006s
=== RUN TestRequestRegistrationOTPReturnsAcceptedResponse
--- PASS: TestRequestRegistrationOTPReturnsAcceptedResponse (0.00s)
=== RUN TestRequestPasswordResetOTPReturnsGenericSuccessResponse
--- PASS: TestRequestPasswordResetOTPReturnsGenericSuccessResponse (0.00s)
=== RUN TestRequestPasswordResetOTPReturnsInternalServerError
2026/05/16 14:42:40 ERROR handler error error="smtp down" method=POST path=/auth/forgot-password/request-otp
--- PASS: TestRequestPasswordResetOTPReturnsInternalServerError (0.00s)
=== RUN TestVerifyPasswordResetOTPReturnsResetGrant
--- PASS: TestVerifyPasswordResetOTPReturnsResetGrant (0.00s)
=== RUN TestResetPasswordReturnsSuccessResponse
--- PASS: TestResetPasswordReturnsSuccessResponse (0.00s)
=== RUN TestLoginReturnsErrorEnvelope
--- PASS: TestLoginReturnsErrorEnvelope (0.00s)
=== RUN TestVerifyRegistrationOTPForwardsUserFields
2026/05/16 14:42:40 INFO user registration completed operation=auth.register.complete user_id=1ada415e-e66a-4536-a1fb-8f698a8e01f2
--- PASS: TestVerifyRegistrationOTPForwardsUserFields (0.00s)
=== RUN TestCheckAvailabilityBothAvailable
--- PASS: TestCheckAvailabilityBothAvailable (0.00s)
=== RUN TestCheckAvailabilityBothTaken
--- PASS: TestCheckAvailabilityBothTaken (0.00s)
=== RUN TestCheckAvailabilityValidationError
--- PASS: TestCheckAvailabilityValidationError (0.00s)
=== RUN TestLogoutForwardsOptionalDeviceInstallationID
--- PASS: TestLogoutForwardsOptionalDeviceInstallationID (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/auth_handler 1.236s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/badge_handler [no test files]
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/category_handler [no test files]
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/comment_handler [no test files]
=== RUN TestDiscoverEventsParsesQueryParamsBeforeCallingService
2026/05/16 14:42:41 INFO event discovery completed operation=event.discover user_id=1472aa97-10c7-407e-92d7-89a1e03ac686 query_summary="lat_set=true lon_set=true radius_meters=9000 minimum_age=18 limit=15 q=trail privacy_levels=2 category_ids=2 tag_names=2 start_from=2030-01-01T07:00:00Z start_to=2030-01-02T07:00:00Z only_favorited=true sort_by=DISTANCE cursor=test-cursor" result_count=0 has_next=false
--- PASS: TestDiscoverEventsParsesQueryParamsBeforeCallingService (0.00s)
=== RUN TestDiscoverEventsInvalidLatitudeReturns400
--- PASS: TestDiscoverEventsInvalidLatitudeReturns400 (0.00s)
=== RUN TestDiscoverEventsInvalidSortReturns400
--- PASS: TestDiscoverEventsInvalidSortReturns400 (0.00s)
=== RUN TestDiscoverEventsReturnsHostScoreField
2026/05/16 14:42:41 INFO event discovery completed operation=event.discover user_id=38b47e6b-bd06-4ad2-a464-9ce8ff4dee96 query_summary="lat_set=true lon_set=true radius_meters=<nil> minimum_age=<nil> limit=<nil> q=<nil> privacy_levels=0 category_ids=0 tag_names=0 start_from=<nil> start_to=<nil> only_favorited=false sort_by=<nil> cursor=<nil>" result_count=1 has_next=false
--- PASS: TestDiscoverEventsReturnsHostScoreField (0.00s)
=== RUN TestDiscoverEventsIgnoresEmptyOptionalListParams
2026/05/16 14:42:41 INFO event discovery completed operation=event.discover user_id=e50eaeab-da18-4884-90e0-530194b30271 query_summary="lat_set=true lon_set=true radius_meters=<nil> minimum_age=<nil> limit=<nil> q=<nil> privacy_levels=0 category_ids=0 tag_names=0 start_from=<nil> start_to=<nil> only_favorited=false sort_by=<nil> cursor=<nil>" result_count=0 has_next=false
--- PASS: TestDiscoverEventsIgnoresEmptyOptionalListParams (0.00s)
=== RUN TestDiscoverEventsAcceptsSingularCategoryIDAlias
2026/05/16 14:42:41 INFO event discovery completed operation=event.discover user_id=a4034f94-9843-440e-810d-d7b22405810e query_summary="lat_set=true lon_set=true radius_meters=<nil> minimum_age=<nil> limit=<nil> q=<nil> privacy_levels=0 category_ids=1 tag_names=0 start_from=<nil> start_to=<nil> only_favorited=false sort_by=<nil> cursor=<nil>" result_count=0 has_next=false
--- PASS: TestDiscoverEventsAcceptsSingularCategoryIDAlias (0.00s)
=== RUN TestDiscoverEventsCategoryIdsInvalidReturns400
--- PASS: TestDiscoverEventsCategoryIdsInvalidReturns400 (0.00s)
=== RUN TestDiscoverEventsSingularCategoryIDInvalidReturns400
--- PASS: TestDiscoverEventsSingularCategoryIDInvalidReturns400 (0.00s)
=== RUN TestDiscoverEventsBothCategoryIDAndCategoryIDsPrefersPlural
2026/05/16 14:42:41 INFO event discovery completed operation=event.discover user_id=4506ae87-826c-4e0b-a1f9-ec3311113df4 query_summary="lat_set=true lon_set=true radius_meters=<nil> minimum_age=<nil> limit=<nil> q=<nil> privacy_levels=0 category_ids=2 tag_names=0 start_from=<nil> start_to=<nil> only_favorited=false sort_by=<nil> cursor=<nil>" result_count=0 has_next=false
--- PASS: TestDiscoverEventsBothCategoryIDAndCategoryIDsPrefersPlural (0.00s)
=== RUN TestGetEventDetailReturns200
2026/05/16 14:42:41 INFO event detail fetched operation=event.detail user_id=63362087-7c68-45b5-aacb-faa6cacf0ed0 event_id=5e5a86c7-120c-41ef-b127-e1c4f43db307 event_version=0 needs_reconfirmation=false latest_event_version=1
--- PASS: TestGetEventDetailReturns200 (0.00s)
=== RUN TestGetEventDetailReturnsRatingMetadata
2026/05/16 14:42:41 INFO event detail fetched operation=event.detail user_id=5979514a-7ccf-45bc-b795-9946edb3eb3e event_id=e5b8a9b9-e09e-4df8-b7f1-188b6755be9d event_version=0 needs_reconfirmation=false latest_event_version=1
--- PASS: TestGetEventDetailReturnsRatingMetadata (0.00s)
=== RUN TestGetEventDetailInvalidIDReturns400
--- PASS: TestGetEventDetailInvalidIDReturns400 (0.00s)
=== RUN TestGetEventDetailWithoutAuthReturns200
2026/05/16 14:42:41 INFO event detail fetched operation=event.detail user_id=anonymous event_id=9239799f-2a55-4e12-b323-7437a516647c event_version=0 needs_reconfirmation=false latest_event_version=1
--- PASS: TestGetEventDetailWithoutAuthReturns200 (0.00s)
=== RUN TestGetEventDetailWithInvalidTokenReturns401
--- PASS: TestGetEventDetailWithInvalidTokenReturns401 (0.00s)
=== RUN TestGetEventHostContextSummaryReturns200
2026/05/16 14:42:41 INFO event host context fetched operation=event.host_context user_id=4a685e93-f69c-4835-8cb1-9cf7d44edadd event_id=a247d323-1545-4042-9f57-66be8f25f3fb
--- PASS: TestGetEventHostContextSummaryReturns200 (0.00s)
=== RUN TestListEventApprovedParticipantsPassesPagination
2026/05/16 14:42:41 INFO event participants listed operation=event.participants.list user_id=8b7ee83d-8061-4cce-9ed3-b4d719d8d1eb event_id=b8f9019d-f5e5-48a2-bb35-29ea5723d38a query_summary="limit=10 cursor=opaque-cursor status=<nil>" result_count=0 has_next=false
--- PASS: TestListEventApprovedParticipantsPassesPagination (0.00s)
=== RUN TestCreateEventReturns201
2026/05/16 14:42:41 INFO event created operation=event.create user_id=0d43f45c-8e1a-4c26-a09f-266a47dd7784 created_event_id=ee519dec-77d9-4a66-b649-540353d93809 query_summary="category_id=3 privacy_level=PUBLIC location_type=POINT route_points=0 tags=0 constraints=0 capacity_set=false minimum_age_set=false preferred_gender_set=false end_time_set=false image_url_set=false start_time=2030-01-01T17:00:00Z"
--- PASS: TestCreateEventReturns201 (0.00s)
=== RUN TestCreateEventWithoutAuthReturns401
--- PASS: TestCreateEventWithoutAuthReturns401 (0.00s)
=== RUN TestCreateEventValidationErrorReturns400
--- PASS: TestCreateEventValidationErrorReturns400 (0.00s)
=== RUN TestCreateEventInvalidJSONReturns400
--- PASS: TestCreateEventInvalidJSONReturns400 (0.00s)
=== RUN TestCreateEventParsesTypedFieldsBeforeCallingService
2026/05/16 14:42:41 INFO event created operation=event.create user_id=158ba379-9a39-4ec8-954f-8ab64091d252 created_event_id=a31e01a9-f1e5-4bbd-8482-9000d367ea72 query_summary="category_id=3 privacy_level=PUBLIC location_type=POINT route_points=0 tags=0 constraints=0 capacity_set=false minimum_age_set=false preferred_gender_set=true end_time_set=true image_url_set=false start_time=2030-01-01T17:00:00Z"
--- PASS: TestCreateEventParsesTypedFieldsBeforeCallingService (0.00s)
=== RUN TestCreateEventInvalidStartTimeReturns400
--- PASS: TestCreateEventInvalidStartTimeReturns400 (0.00s)
=== RUN TestJoinEventInvalidIDReturns400
--- PASS: TestJoinEventInvalidIDReturns400 (0.00s)
=== RUN TestLeaveEventInvalidIDReturns400
--- PASS: TestLeaveEventInvalidIDReturns400 (0.00s)
=== RUN TestLeaveEventParsesIDBeforeCallingService
2026/05/16 14:42:41 INFO event left operation=event.leave user_id=d40e8695-5b1d-4086-bc4b-09d89eac7cf1 event_id=60da9068-18e6-402d-8b30-74448e63f2de participation_id=1e20aa1a-4857-4cc1-9a1d-279cffb7f8db
--- PASS: TestLeaveEventParsesIDBeforeCallingService (0.00s)
=== RUN TestRequestJoinInvalidIDReturns400
--- PASS: TestRequestJoinInvalidIDReturns400 (0.00s)
=== RUN TestRequestJoinParsesMessageBeforeCallingService
2026/05/16 14:42:41 INFO event join request created operation=event.join_request.create user_id=088dd679-e767-4c86-bcb9-78de7e1aa3bb event_id=2e339ace-2131-44cd-913e-1d35329686b6 query_summary="has_message=true has_image_token=false"
--- PASS: TestRequestJoinParsesMessageBeforeCallingService (0.00s)
=== RUN TestRequestJoinParsesImageConfirmTokenBeforeCallingService
2026/05/16 14:42:41 INFO event join request created operation=event.join_request.create user_id=38be4721-e593-45ab-b51a-14862b2894ab event_id=5ffc2012-18cc-403e-be6b-97aa65ec51dc query_summary="has_message=false has_image_token=true"
--- PASS: TestRequestJoinParsesImageConfirmTokenBeforeCallingService (0.00s)
=== RUN TestApproveJoinRequestInvalidEventIDReturns400
--- PASS: TestApproveJoinRequestInvalidEventIDReturns400 (0.00s)
=== RUN TestApproveJoinRequestInvalidJoinRequestIDReturns400
--- PASS: TestApproveJoinRequestInvalidJoinRequestIDReturns400 (0.00s)
=== RUN TestApproveJoinRequestParsesIDsBeforeCallingService
2026/05/16 14:42:41 INFO event join request approved operation=event.join_request.approve user_id=7cba54ad-21d4-489b-8a7a-591675e11457 event_id=e5044008-ba51-410e-b98a-3aad9d175259 join_request_id=08cf8f13-8e88-4652-a02f-8935ce0bbf50 participation_id=49e33c46-225e-4774-a2a7-56df06fee6c1
--- PASS: TestApproveJoinRequestParsesIDsBeforeCallingService (0.00s)
=== RUN TestRejectJoinRequestInvalidJoinRequestIDReturns400
--- PASS: TestRejectJoinRequestInvalidJoinRequestIDReturns400 (0.00s)
=== RUN TestRejectJoinRequestParsesIDsBeforeCallingService
2026/05/16 14:42:41 INFO event join request rejected operation=event.join_request.reject user_id=9a2995de-bf71-4666-8032-1824de2f8482 event_id=9c2b02be-ca0c-4ecc-8b7e-89d3374cb3e1 join_request_id=0756b113-a81c-43e0-9c87-2b6903d9ed51
--- PASS: TestRejectJoinRequestParsesIDsBeforeCallingService (0.00s)
=== RUN TestCompleteEventReturns204
2026/05/16 14:42:41 INFO event completed operation=event.complete user_id=2de3d101-77ba-46a9-befe-52f78d53073f event_id=ff435f7d-065d-4473-a589-319c434d451d
--- PASS: TestCompleteEventReturns204 (0.00s)
=== RUN TestCancelJoinRequestInvalidIDReturns400
--- PASS: TestCancelJoinRequestInvalidIDReturns400 (0.00s)
=== RUN TestCancelJoinRequestSuccessReturns204
2026/05/16 14:42:41 INFO join request canceled operation=event.join_request.cancel user_id=05dec2f4-1b67-4940-b457-0943b5ccc80d event_id=b4ee8c71-6b8f-4201-8362-479bc2e6e08f
--- PASS: TestCancelJoinRequestSuccessReturns204 (0.00s)
=== RUN TestRevokeInvitationInvalidEventIDReturns400
--- PASS: TestRevokeInvitationInvalidEventIDReturns400 (0.00s)
=== RUN TestRevokeInvitationSuccessReturns204
2026/05/16 14:42:41 INFO event invitation revoked operation=event.invitations.revoke user_id=3f300e7e-5c06-4484-be05-76061f2fb91b event_id=ca320c69-42b2-426d-a147-e9356f718eb2
--- PASS: TestRevokeInvitationSuccessReturns204 (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/event_handler 2.218s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/event_report_handler [no test files]
=== RUN TestCreateFavoriteLocationForwardsParsedBody
2026/05/16 14:42:41 INFO favorite location created operation=favorite_location.create user_id=d11538f0-d372-49d6-8f9e-4befcf035a73 created_favorite_location_id=7af2866a-3cd6-4579-9e43-ca819885042b
--- PASS: TestCreateFavoriteLocationForwardsParsedBody (0.00s)
=== RUN TestCreateFavoriteLocationMissingFieldReturns400
--- PASS: TestCreateFavoriteLocationMissingFieldReturns400 (0.00s)
=== RUN TestListFavoriteLocationsRequiresAuthentication
--- PASS: TestListFavoriteLocationsRequiresAuthentication (0.00s)
=== RUN TestUpdateFavoriteLocationRejectsInvalidID
--- PASS: TestUpdateFavoriteLocationRejectsInvalidID (0.00s)
=== RUN TestUpdateFavoriteLocationRejectsEmptyBody
--- PASS: TestUpdateFavoriteLocationRejectsEmptyBody (0.00s)
=== RUN TestListFavoriteLocationsReturnsResponseBody
2026/05/16 14:42:41 INFO favorite locations fetched operation=favorite_location.list user_id=2a44cfbf-cc5c-48c3-bebb-f8de53017f16 result_count=1
--- PASS: TestListFavoriteLocationsReturnsResponseBody (0.00s)
=== RUN TestListFavoriteLocationsReturnsEmptyArrayInsteadOfNull
2026/05/16 14:42:41 INFO favorite locations fetched operation=favorite_location.list user_id=37c7e90c-a227-455d-b26d-53d7b28183fc result_count=0
--- PASS: TestListFavoriteLocationsReturnsEmptyArrayInsteadOfNull (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/favorite_location_handler 1.514s
=== RUN TestCreateProfileAvatarUploadReturnsSignedInstructions
2026/05/16 14:42:41 INFO profile avatar upload URL created operation=image_upload.profile_avatar.create user_id=6839a057-526a-44d4-94f3-f5c6538440a8 base_url=https://sem-bucket.fra1.cdn.digitaloceanspaces.com/profiles/u/avatar/v1-upload upload_count=2 version=1
--- PASS: TestCreateProfileAvatarUploadReturnsSignedInstructions (0.00s)
=== RUN TestCreateProfileAvatarUploadWithoutAuthReturns401
--- PASS: TestCreateProfileAvatarUploadWithoutAuthReturns401 (0.00s)
=== RUN TestConfirmProfileAvatarUploadInvalidTokenReturns400
--- PASS: TestConfirmProfileAvatarUploadInvalidTokenReturns400 (0.00s)
=== RUN TestCreateProfileShowcaseImageUploadReturnsSignedInstructions
2026/05/16 14:42:41 INFO showcase image upload URL created operation=image_upload.profile_showcase.create user_id=f2cc7da4-c980-41e0-9f97-aa3417027986 base_url=https://sem-bucket.fra1.cdn.digitaloceanspaces.com/profiles/u/avatar/v1-upload upload_count=2
--- PASS: TestCreateProfileShowcaseImageUploadReturnsSignedInstructions (0.00s)
=== RUN TestConfirmProfileShowcaseImageUploadReturnsCreatedItem
2026/05/16 14:42:41 INFO showcase image upload confirmed operation=image_upload.profile_showcase.confirm user_id=0d9be62b-7a23-4211-8984-6325d0bd97be showcase_image_id=8010cf19-532c-4e88-bb77-13bb3f804105
--- PASS: TestConfirmProfileShowcaseImageUploadReturnsCreatedItem (0.00s)
=== RUN TestCreateEventImageUploadForbiddenReturns403
--- PASS: TestCreateEventImageUploadForbiddenReturns403 (0.00s)
=== RUN TestCreateEventImageUploadNotFoundReturns404
--- PASS: TestCreateEventImageUploadNotFoundReturns404 (0.00s)
=== RUN TestCreateEventJoinRequestImageUploadReturnsSignedInstructions
2026/05/16 14:42:41 INFO event join request image upload URL created operation=image_upload.event_join_request.create user_id=077cd112-4899-4879-ad7f-5ec1e5099fb1 event_id=4161ed9e-a6f8-41fd-a51e-a2721d46f394 base_url=https://sem-bucket.fra1.cdn.digitaloceanspaces.com/profiles/u/avatar/v1-upload upload_count=2
--- PASS: TestCreateEventJoinRequestImageUploadReturnsSignedInstructions (0.00s)
=== RUN TestCreateEventJoinRequestImageUploadWithoutAuthReturns401
--- PASS: TestCreateEventJoinRequestImageUploadWithoutAuthReturns401 (0.00s)
=== RUN TestConfirmEventImageUploadParsesRequest
2026/05/16 14:42:41 INFO event image upload confirmed operation=image_upload.event_image.confirm user_id=d79ce2de-c636-45da-9a6a-63bed67bff0e event_id=f60db4bf-9581-4a49-a4c7-27e8fbae1cc5
--- PASS: TestConfirmEventImageUploadParsesRequest (0.00s)
=== RUN TestCreateEventReportImageUploadReturnsSignedInstructions
2026/05/16 14:42:41 INFO event report image upload URL created operation=image_upload.event_report.create user_id=fb3d2457-7e64-44d2-a6e4-d66c0e4b6af8 event_id=a0c1174f-097f-4cf4-9ff6-a01fff97f9fc base_url=https://sem-bucket.fra1.cdn.digitaloceanspaces.com/profiles/u/avatar/v1-upload upload_count=2
--- PASS: TestCreateEventReportImageUploadReturnsSignedInstructions (0.00s)
=== RUN TestCreateEventReportImageUploadConflictReturns409
--- PASS: TestCreateEventReportImageUploadConflictReturns409 (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/image_upload_handler 1.526s
=== RUN TestRegisterPushDeviceForwardsParsedBody
2026/05/16 14:42:42 INFO push device registered operation=notification.push_device.register user_id=d3ae0857-3edf-4214-85ad-f72bbfca6258 active_device_count=1
--- PASS: TestRegisterPushDeviceForwardsParsedBody (0.00s)
=== RUN TestRegisterPushDeviceRejectsInvalidInstallationID
--- PASS: TestRegisterPushDeviceRejectsInvalidInstallationID (0.00s)
=== RUN TestUnregisterPushDeviceRequiresAuthentication
--- PASS: TestUnregisterPushDeviceRequiresAuthentication (0.00s)
=== RUN TestListNotificationsParsesPagination
--- PASS: TestListNotificationsParsesPagination (0.00s)
=== RUN TestGetUnreadNotificationCountReturnsCount
--- PASS: TestGetUnreadNotificationCountReturnsCount (0.00s)
=== RUN TestMarkNotificationReadRejectsInvalidNotificationID
--- PASS: TestMarkNotificationReadRejectsInvalidNotificationID (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/notification_handler 1.507s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/profile_handler [no test files]
=== RUN TestUpsertEventRatingParsesBodyAndReturns200
2026/05/16 14:42:42 INFO event rating upserted operation=rating.event.upsert user_id=dfd2cd71-b0d1-47b2-a48f-d02d2d7bc7f4 event_id=097a6232-c521-4334-aa7b-e3ee4452ad6f rating=5 has_message=true
--- PASS: TestUpsertEventRatingParsesBodyAndReturns200 (0.00s)
=== RUN TestDeleteEventRatingReturns204
2026/05/16 14:42:42 INFO event rating deleted operation=rating.event.delete user_id=656e92e2-b2b0-4a3e-be6e-c717e5bc57fb event_id=acd52f63-c474-4c72-9985-bd9c3232d649
--- PASS: TestDeleteEventRatingReturns204 (0.00s)
=== RUN TestUpsertParticipantRatingInvalidParticipantIDReturns400
--- PASS: TestUpsertParticipantRatingInvalidParticipantIDReturns400 (0.00s)
=== RUN TestUpsertEventRatingInvalidJSONReturns400
--- PASS: TestUpsertEventRatingInvalidJSONReturns400 (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/rating_handler 1.513s
=== RUN TestScanTicketRequiresMobileHeader
--- PASS: TestScanTicketRequiresMobileHeader (0.00s)
=== RUN TestScanTicketParsesBodyAndForwardsToService
2026/05/16 14:42:42 INFO ticket scan completed operation=ticket.scan user_id=fd68d488-583c-4b90-8ae6-2e9769d2bdca event_id=ab087ee2-a418-47b3-9898-054ba63d799b result=ACCEPTED
--- PASS: TestScanTicketParsesBodyAndForwardsToService (0.00s)
=== RUN TestListMyTicketsDoesNotRequireMobileHeader
--- PASS: TestListMyTicketsDoesNotRequireMobileHeader (0.00s)
=== RUN TestWriteSSEFlushesEventPayload
--- PASS: TestWriteSSEFlushesEventPayload (0.00s)
=== RUN TestWriteSSEReturnsFalseWhenFlushFails
--- PASS: TestWriteSSEReturnsFalseWhenFlushFails (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/ticket_handler 1.482s
? github.com/bounswe/bounswe2026group11/backend/internal/adapter/out/httpapi/user_handler [no test files]
=== RUN TestCreateManualParticipationCreatesTicketForPublicApprovedParticipation
2026/05/16 14:42:42 INFO admin participation created operation=admin.participations.create admin_user_id=6971561e-a280-47de-b65b-fa66cfd87659 event_id=18aca5ab-9d73-450c-86c0-f286a6088398 participant_user_id=d28ca9a0-24bc-4dc8-82c2-d62df80565b8 participation_id=937c0659-8cdc-46b0-b71f-1c22b0e650c2 participation_status=APPROVED ticket_created=true has_reason=false
--- PASS: TestCreateManualParticipationCreatesTicketForPublicApprovedParticipation (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/admin 1.428s
=== RUN TestRequestRegistrationOTPStoresHashedChallenge
--- PASS: TestRequestRegistrationOTPStoresHashedChallenge (0.00s)
=== RUN TestRequestPasswordResetOTPStoresHashedChallengeForExistingUser
--- PASS: TestRequestPasswordResetOTPStoresHashedChallengeForExistingUser (0.00s)
=== RUN TestRequestPasswordResetOTPUnknownEmailReturnsSilently
--- PASS: TestRequestPasswordResetOTPUnknownEmailReturnsSilently (0.00s)
=== RUN TestRequestPasswordResetOTPValidationError
--- PASS: TestRequestPasswordResetOTPValidationError (0.00s)
=== RUN TestRequestPasswordResetOTPIsSilentlyRateLimited
--- PASS: TestRequestPasswordResetOTPIsSilentlyRateLimited (0.00s)
=== RUN TestRequestPasswordResetOTPCooldownReturnsSilently
--- PASS: TestRequestPasswordResetOTPCooldownReturnsSilently (0.00s)
=== RUN TestRequestPasswordResetOTPMailerErrorReturned
--- PASS: TestRequestPasswordResetOTPMailerErrorReturned (0.00s)
=== RUN TestVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP
--- PASS: TestVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP (0.00s)
=== RUN TestVerifyPasswordResetOTPInvalidCodeIncrementsAttempts
--- PASS: TestVerifyPasswordResetOTPInvalidCodeIncrementsAttempts (0.00s)
=== RUN TestResetPasswordUpdatesPasswordAndConsumesGrant
--- PASS: TestResetPasswordUpdatesPasswordAndConsumesGrant (0.00s)
=== RUN TestResetPasswordRejectsInvalidGrant
--- PASS: TestResetPasswordRejectsInvalidGrant (0.00s)
=== RUN TestResetPasswordValidationError
--- PASS: TestResetPasswordValidationError (0.00s)
=== RUN TestVerifyRegistrationOTPSuccessCreatesUserAndSession
--- PASS: TestVerifyRegistrationOTPSuccessCreatesUserAndSession (0.00s)
=== RUN TestVerifyRegistrationOTPRejectsInvalidBirthDate
--- PASS: TestVerifyRegistrationOTPRejectsInvalidBirthDate (0.00s)
=== RUN TestVerifyRegistrationOTPInvalidCodeIncrementsAttempts
--- PASS: TestVerifyRegistrationOTPInvalidCodeIncrementsAttempts (0.00s)
=== RUN TestVerifyRegistrationOTPExpiredCodeRejected
--- PASS: TestVerifyRegistrationOTPExpiredCodeRejected (0.00s)
=== RUN TestVerifyRegistrationOTPAttemptExhaustion
--- PASS: TestVerifyRegistrationOTPAttemptExhaustion (0.00s)
=== RUN TestLoginWrongPasswordRejected
--- PASS: TestLoginWrongPasswordRejected (0.00s)
=== RUN TestRefreshRotatesTokenAndRejectsReuse
--- PASS: TestRefreshRotatesTokenAndRejectsReuse (0.00s)
=== RUN TestRefreshCapsRotatedTokenAtAbsoluteSessionLimit
--- PASS: TestRefreshCapsRotatedTokenAtAbsoluteSessionLimit (0.00s)
=== RUN TestRefreshRejectsExpiredAbsoluteSession
--- PASS: TestRefreshRejectsExpiredAbsoluteSession (0.00s)
=== RUN TestRefreshExpiredTokenRejected
--- PASS: TestRefreshExpiredTokenRejected (0.00s)
=== RUN TestCheckAvailabilityBothAvailable
--- PASS: TestCheckAvailabilityBothAvailable (0.00s)
=== RUN TestCheckAvailabilityBothTaken
--- PASS: TestCheckAvailabilityBothTaken (0.00s)
=== RUN TestCheckAvailabilityValidationError
--- PASS: TestCheckAvailabilityValidationError (0.00s)
=== RUN TestCheckAvailabilityRateLimited
--- PASS: TestCheckAvailabilityRateLimited (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/auth 1.409s
=== RUN TestServiceListMyBadgesEmpty
--- PASS: TestServiceListMyBadgesEmpty (0.00s)
=== RUN TestServiceListMyBadgesProjectsRowsToWire
--- PASS: TestServiceListMyBadgesProjectsRowsToWire (0.00s)
=== RUN TestServiceListBadgesMergesEarnedStatus
--- PASS: TestServiceListBadgesMergesEarnedStatus (0.00s)
=== RUN TestEvaluateParticipationBadgesAwardsTieredBadges
--- PASS: TestEvaluateParticipationBadgesAwardsTieredBadges (0.00s)
=== RUN TestEvaluateParticipationBadgesBelowThreshold
--- PASS: TestEvaluateParticipationBadgesBelowThreshold (0.00s)
=== RUN TestEvaluateParticipationBadgesIdempotent
--- PASS: TestEvaluateParticipationBadgesIdempotent (0.00s)
=== RUN TestEvaluateHostBadgesRequiresMinRatingsForTopRated
--- PASS: TestEvaluateHostBadgesRequiresMinRatingsForTopRated (0.00s)
=== RUN TestEvaluateHostBadgesAwardsTopRated
--- PASS: TestEvaluateHostBadgesAwardsTopRated (0.00s)
=== RUN TestEvaluateHostBadgesScoreBelowThreshold
--- PASS: TestEvaluateHostBadgesScoreBelowThreshold (0.00s)
=== RUN TestEvaluateFavoriteLocationBadgesAwardsAtThree
--- PASS: TestEvaluateFavoriteLocationBadgesAwardsAtThree (0.00s)
=== RUN TestEvaluateFavoriteLocationBadgesBelowThreshold
--- PASS: TestEvaluateFavoriteLocationBadgesBelowThreshold (0.00s)
=== RUN TestEvaluateParticipationBadgesPropagatesRepoError
--- PASS: TestEvaluateParticipationBadgesPropagatesRepoError (0.00s)
=== RUN TestBackfillExistingBadgesEvaluatesHistoricalCandidates
--- PASS: TestBackfillExistingBadgesEvaluatesHistoricalCandidates (0.00s)
=== RUN TestBackfillExistingBadgesPropagatesCandidateLookupError
--- PASS: TestBackfillExistingBadgesPropagatesCandidateLookupError (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/badge 1.423s
? github.com/bounswe/bounswe2026group11/backend/internal/application/category [no test files]
=== RUN TestCreateDiscussionCommentAllowsAnyoneWhenActive
--- PASS: TestCreateDiscussionCommentAllowsAnyoneWhenActive (0.00s)
=== RUN TestCreateDiscussionCommentRejectsNonParticipantInProgress
--- PASS: TestCreateDiscussionCommentRejectsNonParticipantInProgress (0.00s)
=== RUN TestUpsertReviewCommentRequiresCompletedParticipant
--- PASS: TestUpsertReviewCommentRequiresCompletedParticipant (0.00s)
=== RUN TestUpsertReviewCommentStoresConfirmedImageAndRefreshesHostScore
--- PASS: TestUpsertReviewCommentStoresConfirmedImageAndRefreshesHostScore (0.00s)
=== RUN TestListEventCommentsReturnsNoChildComments
--- PASS: TestListEventCommentsReturnsNoChildComments (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/comment 1.411s
? github.com/bounswe/bounswe2026group11/backend/internal/application/email [no test files]
=== RUN TestNormalizeDiscoverEventsInput_ChildFriendlyTrue
--- PASS: TestNormalizeDiscoverEventsInput_ChildFriendlyTrue (0.00s)
=== RUN TestNormalizeDiscoverEventsInput_FamilyOrientedTrue
--- PASS: TestNormalizeDiscoverEventsInput_FamilyOrientedTrue (0.00s)
=== RUN TestNormalizeDiscoverEventsInput_BothAudienceFilters
--- PASS: TestNormalizeDiscoverEventsInput_BothAudienceFilters (0.00s)
=== RUN TestNormalizeDiscoverEventsInput_NoAudienceFilters
--- PASS: TestNormalizeDiscoverEventsInput_NoAudienceFilters (0.00s)
=== RUN TestToEventDetailLocationPublicEventNeverFuzzes
=== RUN TestToEventDetailLocationPublicEventNeverFuzzes/host
=== RUN TestToEventDetailLocationPublicEventNeverFuzzes/joined_participant
=== RUN TestToEventDetailLocationPublicEventNeverFuzzes/non-participant
--- PASS: TestToEventDetailLocationPublicEventNeverFuzzes (0.00s)
--- PASS: TestToEventDetailLocationPublicEventNeverFuzzes/host (0.00s)
--- PASS: TestToEventDetailLocationPublicEventNeverFuzzes/joined_participant (0.00s)
--- PASS: TestToEventDetailLocationPublicEventNeverFuzzes/non-participant (0.00s)
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants/host_gets_exact
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants/approved_gets_exact
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants/pending_reconfirmation_gets_exact
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants/none_gets_approximate
=== RUN TestToEventDetailLocationProtectedEventFuzzesNonParticipants/leaved_gets_approximate
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants (0.00s)
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants/host_gets_exact (0.00s)
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants/approved_gets_exact (0.00s)
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants/pending_reconfirmation_gets_exact (0.00s)
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants/none_gets_approximate (0.00s)
--- PASS: TestToEventDetailLocationProtectedEventFuzzesNonParticipants/leaved_gets_approximate (0.00s)
=== RUN TestToEventDetailLocationRoutePointsAreFuzzed
--- PASS: TestToEventDetailLocationRoutePointsAreFuzzed (0.00s)
=== RUN TestCreateEventSuccessReturnsID
2026/05/16 14:42:43 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8a14cccd-2e01-41a2-b0c6-806b077d8e99 host_user_id=63b3258f-0f65-4384-86be-698ad3e8ff84 event_version=1
--- PASS: TestCreateEventSuccessReturnsID (0.00s)
=== RUN TestCreateEventWithEndTime
2026/05/16 14:42:43 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c2ce7762-ee5f-4906-8a71-4026f51d8c42 host_user_id=8504fa78-57a5-4cbc-8158-e72876c6167c event_version=1
--- PASS: TestCreateEventWithEndTime (0.00s)
=== RUN TestGetEventDetailMapsRepositoryRecord
--- PASS: TestGetEventDetailMapsRepositoryRecord (0.00s)
=== RUN TestGetEventHostContextSummaryRequiresHost
--- PASS: TestGetEventHostContextSummaryRequiresHost (0.00s)
=== RUN TestGetEventHostContextSummaryReturnsCountsForHost
--- PASS: TestGetEventHostContextSummaryReturnsCountsForHost (0.00s)
=== RUN TestListEventApprovedParticipantsBuildsCursorPage
--- PASS: TestListEventApprovedParticipantsBuildsCursorPage (0.00s)
=== RUN TestGetEventDetailReturnsNotFoundWhenRepositoryMisses
--- PASS: TestGetEventDetailReturnsNotFoundWhenRepositoryMisses (0.00s)
=== RUN TestCreateEventValidationEmptyTitle
--- PASS: TestCreateEventValidationEmptyTitle (0.00s)
=== RUN TestCreateEventValidationInvalidPrivacyLevel
--- PASS: TestCreateEventValidationInvalidPrivacyLevel (0.00s)
=== RUN TestCreateEventValidationInvalidLocationType
--- PASS: TestCreateEventValidationInvalidLocationType (0.00s)
=== RUN TestCreateEventValidationMissingStartTime
--- PASS: TestCreateEventValidationMissingStartTime (0.00s)
=== RUN TestCreateEventValidationPastStartTime
--- PASS: TestCreateEventValidationPastStartTime (0.00s)
=== RUN TestCreateEventValidationEndTimeBeforeStartTime
--- PASS: TestCreateEventValidationEndTimeBeforeStartTime (0.00s)
=== RUN TestCreateEventValidationEndTimeEqualToStartTime
--- PASS: TestCreateEventValidationEndTimeEqualToStartTime (0.00s)
=== RUN TestCreateEventValidationTooManyTags
--- PASS: TestCreateEventValidationTooManyTags (0.00s)
=== RUN TestCreateEventValidationEmptyTag
--- PASS: TestCreateEventValidationEmptyTag (0.00s)
=== RUN TestCreateEventValidationTagTooLong
--- PASS: TestCreateEventValidationTagTooLong (0.00s)
=== RUN TestCreateEventValidationInvalidGender
--- PASS: TestCreateEventValidationInvalidGender (0.00s)
=== RUN TestCreateEventValidationNegativeCapacity
--- PASS: TestCreateEventValidationNegativeCapacity (0.00s)
=== RUN TestCreateEventValidationZeroCapacity
--- PASS: TestCreateEventValidationZeroCapacity (0.00s)
=== RUN TestCreateEventValidationInvalidMinimumAge
--- PASS: TestCreateEventValidationInvalidMinimumAge (0.00s)
=== RUN TestCreateEventValidationConstraintMissingType
--- PASS: TestCreateEventValidationConstraintMissingType (0.00s)
=== RUN TestCreateEventValidationConstraintMissingInfo
--- PASS: TestCreateEventValidationConstraintMissingInfo (0.00s)
=== RUN TestCreateEventValidationMissingDescription
--- PASS: TestCreateEventValidationMissingDescription (0.00s)
=== RUN TestCreateEventValidationMissingCategoryID
--- PASS: TestCreateEventValidationMissingCategoryID (0.00s)
=== RUN TestCreateEventValidationPointRequiresCoordinates
--- PASS: TestCreateEventValidationPointRequiresCoordinates (0.00s)
=== RUN TestCreateEventValidationRouteRequiresRoutePoints
--- PASS: TestCreateEventValidationRouteRequiresRoutePoints (0.00s)
=== RUN TestCreateEventValidationRoutePointMissingLatitude
--- PASS: TestCreateEventValidationRoutePointMissingLatitude (0.00s)
=== RUN TestCreateEventValidationTooManyConstraints
--- PASS: TestCreateEventValidationTooManyConstraints (0.00s)
=== RUN TestCreateEventRepoErrorPropagates
2026/05/16 14:42:43 ERROR event create failed before version snapshot operation=event.create.version_snapshot host_user_id=24e450e3-a47e-4872-97d0-cfdcd217913b error="database down"
--- PASS: TestCreateEventRepoErrorPropagates (0.00s)
=== RUN TestDiscoverEventsAppliesDefaultsAndMapsResults
--- PASS: TestDiscoverEventsAppliesDefaultsAndMapsResults (0.00s)
=== RUN TestListFavoriteEventsMapsPrivacyLevelAndLocationAddress
--- PASS: TestListFavoriteEventsMapsPrivacyLevelAndLocationAddress (0.00s)
=== RUN TestDiscoverEventsDefaultsToRelevanceWhenQueryProvided
--- PASS: TestDiscoverEventsDefaultsToRelevanceWhenQueryProvided (0.00s)
=== RUN TestDiscoverEventsRejectsRelevanceWithoutQuery
--- PASS: TestDiscoverEventsRejectsRelevanceWithoutQuery (0.00s)
=== RUN TestDiscoverEventsRejectsInvalidCursor
--- PASS: TestDiscoverEventsRejectsInvalidCursor (0.00s)
=== RUN TestDiscoverEventsRejectsCursorMismatch
--- PASS: TestDiscoverEventsRejectsCursorMismatch (0.00s)
=== RUN TestDiscoverEventsRejectsOutOfRangeRadiusAndLimit
--- PASS: TestDiscoverEventsRejectsOutOfRangeRadiusAndLimit (0.00s)
=== RUN TestDiscoverEventsPassesMinimumAgeFilterToRepo
--- PASS: TestDiscoverEventsPassesMinimumAgeFilterToRepo (0.00s)
=== RUN TestDiscoverEventsRejectsPrivateVisibilityFilter
--- PASS: TestDiscoverEventsRejectsPrivateVisibilityFilter (0.00s)
=== RUN TestDiscoverEventsBuildsNextCursorFromLastReturnedItem
--- PASS: TestDiscoverEventsBuildsNextCursorFromLastReturnedItem (0.00s)
=== RUN TestGetEventDetailReturnsDiffFromViewerLastConfirmedVersion
2026/05/16 14:42:43 INFO event reconfirmation diff generated operation=event.detail.reconfirmation_diff event_id=abcfe7bf-d542-4e42-bd7b-6a43c4e94f7d user_id=1a09affc-2cdf-4292-9ce4-bdfd6708f33d from_event_version=3 to_event_version=5 diff_change_count=2
--- PASS: TestGetEventDetailReturnsDiffFromViewerLastConfirmedVersion (0.00s)
=== RUN TestUpdateEventTriggeringChangeMarksApprovedParticipantsPendingAndTickets
2026/05/16 14:42:43 INFO event version snapshot created operation=event.update.version_snapshot event_id=6fb2b63d-71a8-4956-a8d0-a1d5f0ae982b host_user_id=128d3950-fba1-4416-b6d0-4dd98b4cf632 from_event_version=1 to_event_version=2 changed_field_count=1 reconfirmation_required=true
--- PASS: TestUpdateEventTriggeringChangeMarksApprovedParticipantsPendingAndTickets (0.00s)
=== RUN TestUpdateEventRemovingConstraintDoesNotRequireReconfirmation
2026/05/16 14:42:43 INFO event version snapshot created operation=event.update.version_snapshot event_id=735f166f-555e-4979-bc18-ffd67dde7a9e host_user_id=49fecfd0-c6d9-4bcf-bae1-c2484848fb32 from_event_version=4 to_event_version=5 changed_field_count=1 reconfirmation_required=false
--- PASS: TestUpdateEventRemovingConstraintDoesNotRequireReconfirmation (0.00s)
=== RUN TestUpdateEventRejectsCapacityBelowApprovedAndPendingCount
--- PASS: TestUpdateEventRejectsCapacityBelowApprovedAndPendingCount (0.00s)
=== RUN TestReconfirmParticipationCreatesActiveTicketForPublicEvent
2026/05/16 14:42:43 INFO event participation reconfirmed operation=event.participation.reconfirm event_id=f076adfd-aa60-47b0-b286-59faaa1fedd1 user_id=d58d4a89-b363-441e-8b8b-7eefd8f85e75 participation_id=ff32ef8c-fa6d-4d58-9fcf-465cd503089e event_version=1 ticket_created=true
--- PASS: TestReconfirmParticipationCreatesActiveTicketForPublicEvent (0.00s)
=== RUN TestTransitionEventStatusesAutoApprovesPendingWhenEventStarts
--- PASS: TestTransitionEventStatusesAutoApprovesPendingWhenEventStarts (0.00s)
=== RUN TestCancelEventRunsEventAndParticipationUpdatesInsideOneUnitOfWork
--- PASS: TestCancelEventRunsEventAndParticipationUpdatesInsideOneUnitOfWork (0.00s)
=== RUN TestCancelEventCancelsTicketsInsideUnitOfWork
--- PASS: TestCancelEventCancelsTicketsInsideUnitOfWork (0.00s)
=== RUN TestCancelEventRollsBackUnitOfWorkWhenParticipationCancelFails
--- PASS: TestCancelEventRollsBackUnitOfWorkWhenParticipationCancelFails (0.00s)
=== RUN TestCompleteEventHostSuccess
--- PASS: TestCompleteEventHostSuccess (0.00s)
=== RUN TestCompleteEventExpiresTickets
--- PASS: TestCompleteEventExpiresTickets (0.00s)
=== RUN TestCompleteEventHostSuccessInProgress
--- PASS: TestCompleteEventHostSuccessInProgress (0.00s)
=== RUN TestCompleteEventForbiddenForNonHost
--- PASS: TestCompleteEventForbiddenForNonHost (0.00s)
=== RUN TestCompleteEventConflictWhenTerminal
--- PASS: TestCompleteEventConflictWhenTerminal (0.00s)
=== RUN TestCompleteEventIgnoresBadgeEvaluationErrors
2026/05/16 14:42:43 WARN event participation badge evaluation failed operation=event.evaluate_participation_badges event_id=8aa46b75-7763-4c52-b1ff-fc8f8a4d4924 error="badge evaluation failed"
2026/05/16 14:42:43 WARN event host badge evaluation failed operation=event.evaluate_host_badges host_id=19374135-5cbc-4a9e-8c29-6805e89ab2b8 error="host badge evaluation failed"
--- PASS: TestCompleteEventIgnoresBadgeEvaluationErrors (0.00s)
=== RUN TestTransitionExpiredEventsEvaluatesBadgesForEachCompletedEvent
--- PASS: TestTransitionExpiredEventsEvaluatesBadgesForEachCompletedEvent (0.00s)
=== RUN TestTransitionExpiredEventsPropagatesRepositoryError
--- PASS: TestTransitionExpiredEventsPropagatesRepositoryError (0.00s)
=== RUN TestJoinEventSuccessReturnsApproved
2026/05/16 14:42:43 INFO event participation created operation=event.participation.create event_id=7e33b9eb-4270-446f-87d5-21990cc16b85 user_id=d3d759b0-c0a6-485d-83e2-6d7f09faf0b2 participation_id=b50b9df5-f85c-4b32-afb5-6f7bb29a08a6 participation_status=APPROVED accepted_event_version=0 ticket_created=false
--- PASS: TestJoinEventSuccessReturnsApproved (0.00s)
=== RUN TestJoinEventCreatesActiveTicketForPublicEvent
2026/05/16 14:42:43 INFO event participation created operation=event.participation.create event_id=47eeb6a8-4d15-4f7f-82d4-44c42397b2e3 user_id=3f512b35-cabf-4be4-bf06-f00e0fbb6ee8 participation_id=f90e78ee-0f61-49e1-af06-95a5edf04346 participation_status=APPROVED accepted_event_version=0 ticket_created=true
--- PASS: TestJoinEventCreatesActiveTicketForPublicEvent (0.00s)
=== RUN TestJoinEventRollsBackUnitOfWorkWhenTicketCreationFails
--- PASS: TestJoinEventRollsBackUnitOfWorkWhenTicketCreationFails (0.00s)
=== RUN TestJoinEventRejectsNonExistentEvent
--- PASS: TestJoinEventRejectsNonExistentEvent (0.00s)
=== RUN TestJoinEventRejectsHost
--- PASS: TestJoinEventRejectsHost (0.00s)
=== RUN TestJoinEventRejectsProtectedEvent
--- PASS: TestJoinEventRejectsProtectedEvent (0.00s)
=== RUN TestJoinEventRejectsFullCapacity
--- PASS: TestJoinEventRejectsFullCapacity (0.00s)
=== RUN TestJoinEventAllowsWhenUnderCapacity
2026/05/16 14:42:43 INFO event participation created operation=event.participation.create event_id=c624b18a-8040-4585-88dd-5284e39a0733 user_id=e727ef96-af11-49ca-a8c1-93ca11e5a3ba participation_id=f8ae15d7-4134-4083-a31d-2cf70b843bd6 participation_status=APPROVED accepted_event_version=0 ticket_created=false
--- PASS: TestJoinEventAllowsWhenUnderCapacity (0.00s)
=== RUN TestJoinEventRejectsUnderageUser
--- PASS: TestJoinEventRejectsUnderageUser (0.00s)
=== RUN TestJoinEventRejectsMismatchedGender
--- PASS: TestJoinEventRejectsMismatchedGender (0.00s)
=== RUN TestJoinEventRejectsMissingBirthDateWhenAgeRestricted
--- PASS: TestJoinEventRejectsMissingBirthDateWhenAgeRestricted (0.00s)
=== RUN TestLeaveEventSuccessReturnsLeaved
--- PASS: TestLeaveEventSuccessReturnsLeaved (0.00s)
=== RUN TestLeaveEventCancelsLinkedTicket
--- PASS: TestLeaveEventCancelsLinkedTicket (0.00s)
=== RUN TestLeaveEventRejectsHost
--- PASS: TestLeaveEventRejectsHost (0.00s)
=== RUN TestLeaveEventRejectsEndedEvent
--- PASS: TestLeaveEventRejectsEndedEvent (0.00s)
=== RUN TestRequestJoinSuccessReturnsPending
2026/05/16 14:42:43 INFO event join request created operation=event.join_request.create event_id=291297ef-b038-42c5-9eb8-598d8d8842ca user_id=5bc27b8c-b19b-4dcf-9337-bea8a10b6a9e host_user_id=df9ebf51-4b0d-42ce-be8b-cb5c9eaa78f5 join_request_id=8461888b-ac47-439f-aff0-3f34e4839ff2 join_request_status=PENDING
--- PASS: TestRequestJoinSuccessReturnsPending (0.00s)
=== RUN TestRequestJoinWithImageTokenConfirmsAndStoresImageURL
2026/05/16 14:42:43 INFO event join request created operation=event.join_request.create event_id=4434cca9-6675-4622-9503-ac6e4e2b57f4 user_id=4797517b-b9fc-413a-b0c3-66fbcace466f host_user_id=79f143f3-b11d-4a53-955e-73b7dc4c3e15 join_request_id=67dceb52-7fcc-459e-8fd9-03545f2a7cbc join_request_status=PENDING
--- PASS: TestRequestJoinWithImageTokenConfirmsAndStoresImageURL (0.00s)
=== RUN TestRequestJoinWithoutImageTokenDoesNotConfirmImage
2026/05/16 14:42:43 INFO event join request created operation=event.join_request.create event_id=5d4e96bc-f610-41c9-b71c-754b96fa1fc3 user_id=4893361d-e538-4995-a267-c12567515b85 host_user_id=738a6f71-cd86-45ca-b00e-414fcc8f0427 join_request_id=31718fb3-c84a-4875-8568-a42a3f96e407 join_request_status=PENDING
--- PASS: TestRequestJoinWithoutImageTokenDoesNotConfirmImage (0.00s)
=== RUN TestRequestJoinRejectsHost
--- PASS: TestRequestJoinRejectsHost (0.00s)
=== RUN TestRequestJoinRejectsPublicEvent
--- PASS: TestRequestJoinRejectsPublicEvent (0.00s)
=== RUN TestRequestJoinRejectsUnderageUser
--- PASS: TestRequestJoinRejectsUnderageUser (0.00s)
=== RUN TestRequestJoinRejectsMismatchedGender
--- PASS: TestRequestJoinRejectsMismatchedGender (0.00s)
=== RUN TestApproveJoinRequestDelegatesToJoinRequestService
2026/05/16 14:42:43 INFO event join request approved operation=event.join_request.approve event_id=60cbedb9-63cc-4e95-bf12-e321e0aa2969 host_user_id=bdff3493-316a-4438-928a-286ef49fcd5c join_request_id=bd2cd56c-ea1c-4bbb-982f-26831ef397bc participation_id=7e11de35-9b68-4c9a-9bd1-a925d7cb3dbe participant_user_id=fd3ffd02-f0a9-4fdb-9613-d2adfac7e41c participation_status=APPROVED accepted_event_version=0
--- PASS: TestApproveJoinRequestDelegatesToJoinRequestService (0.00s)
=== RUN TestRejectJoinRequestDelegatesToJoinRequestService
--- PASS: TestRejectJoinRequestDelegatesToJoinRequestService (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/event 1.421s
=== RUN TestCreateEventReportStoresNormalizedReport
--- PASS: TestCreateEventReportStoresNormalizedReport (0.00s)
=== RUN TestCreateEventReportRequiresMessage
--- PASS: TestCreateEventReportRequiresMessage (0.00s)
=== RUN TestCreateEventReportRejectsImageBeforeEventStarts
--- PASS: TestCreateEventReportRejectsImageBeforeEventStarts (0.00s)
=== RUN TestCreateEventReportStoresConfirmedImageForInProgressEvent
--- PASS: TestCreateEventReportStoresConfirmedImageForInProgressEvent (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/eventreport 1.394s
=== RUN TestCreateMyFavoriteLocationTrimsAndPersistsValidatedFields
--- PASS: TestCreateMyFavoriteLocationTrimsAndPersistsValidatedFields (0.00s)
=== RUN TestCreateMyFavoriteLocationMapsLimitConflict
--- PASS: TestCreateMyFavoriteLocationMapsLimitConflict (0.00s)
=== RUN TestUpdateMyFavoriteLocationMergesExistingFields
--- PASS: TestUpdateMyFavoriteLocationMergesExistingFields (0.00s)
=== RUN TestDeleteMyFavoriteLocationMapsNotFound
--- PASS: TestDeleteMyFavoriteLocationMapsNotFound (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/favorite_location 1.373s
=== RUN TestCreateProfileAvatarUploadBuildsVersionedKeysAndBaseURL
--- PASS: TestCreateProfileAvatarUploadBuildsVersionedKeysAndBaseURL (0.00s)
=== RUN TestConfirmProfileAvatarUploadUpdatesWhenObjectsExist
--- PASS: TestConfirmProfileAvatarUploadUpdatesWhenObjectsExist (0.00s)
=== RUN TestConfirmProfileAvatarUploadRejectsIncompleteUpload
--- PASS: TestConfirmProfileAvatarUploadRejectsIncompleteUpload (0.00s)
=== RUN TestConfirmProfileAvatarUploadRejectsStaleVersion
--- PASS: TestConfirmProfileAvatarUploadRejectsStaleVersion (0.00s)
=== RUN TestConfirmProfileShowcaseImageUploadPersistsShowcaseImage
--- PASS: TestConfirmProfileShowcaseImageUploadPersistsShowcaseImage (0.00s)
=== RUN TestCreateEventImageUploadRejectsNonHost
--- PASS: TestCreateEventImageUploadRejectsNonHost (0.00s)
=== RUN TestConfirmEventImageUploadRejectsInvalidToken
--- PASS: TestConfirmEventImageUploadRejectsInvalidToken (0.00s)
=== RUN TestCreateEventJoinRequestImageUploadBuildsKeysAndToken
--- PASS: TestCreateEventJoinRequestImageUploadBuildsKeysAndToken (0.00s)
=== RUN TestConfirmEventJoinRequestImageUploadReturnsBaseURLWhenObjectsExist
--- PASS: TestConfirmEventJoinRequestImageUploadReturnsBaseURLWhenObjectsExist (0.00s)
=== RUN TestConfirmEventJoinRequestImageUploadRejectsWrongOwner
--- PASS: TestConfirmEventJoinRequestImageUploadRejectsWrongOwner (0.00s)
=== RUN TestConfirmEventJoinRequestImageUploadRejectsIncompleteUpload
--- PASS: TestConfirmEventJoinRequestImageUploadRejectsIncompleteUpload (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/imageupload 1.351s
=== RUN TestPastInvitationCursorRoundTrip
--- PASS: TestPastInvitationCursorRoundTrip (0.00s)
=== RUN TestDecodePastInvitationCursorRejectsInvalid
=== RUN TestDecodePastInvitationCursorRejectsInvalid/empty_token
=== RUN TestDecodePastInvitationCursorRejectsInvalid/non-base64
=== RUN TestDecodePastInvitationCursorRejectsInvalid/valid_base64_of_garbage_json
--- PASS: TestDecodePastInvitationCursorRejectsInvalid (0.00s)
--- PASS: TestDecodePastInvitationCursorRejectsInvalid/empty_token (0.00s)
--- PASS: TestDecodePastInvitationCursorRejectsInvalid/non-base64 (0.00s)
--- PASS: TestDecodePastInvitationCursorRejectsInvalid/valid_base64_of_garbage_json (0.00s)
=== RUN TestDecodePastInvitationCursorRejectsZeroFields
--- PASS: TestDecodePastInvitationCursorRejectsZeroFields (0.00s)
=== RUN TestBuildNextPastInvitationCursor
--- PASS: TestBuildNextPastInvitationCursor (0.00s)
=== RUN TestListReceivedInvitationsBucketsAndPagination
=== RUN TestListReceivedInvitationsBucketsAndPagination/empty_result_returns_empty_buckets_and_no_cursor
=== RUN TestListReceivedInvitationsBucketsAndPagination/populated_buckets_with_implicit_limit_do_not_produce_a_cursor
=== RUN TestListReceivedInvitationsBucketsAndPagination/explicit_limit_produces_a_next_cursor_when_more_rows_exist
=== RUN TestListReceivedInvitationsBucketsAndPagination/invalid_cursor_returns_validation_error
=== RUN TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error
=== RUN TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/zero
=== RUN TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/negative
=== RUN TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/above_max
=== RUN TestListReceivedInvitationsBucketsAndPagination/empty_cursor_string_is_ignored_(treated_as_no_cursor)
=== RUN TestListReceivedInvitationsBucketsAndPagination/repository_error_on_past_bucket_propagates
--- PASS: TestListReceivedInvitationsBucketsAndPagination (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/empty_result_returns_empty_buckets_and_no_cursor (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/populated_buckets_with_implicit_limit_do_not_produce_a_cursor (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/explicit_limit_produces_a_next_cursor_when_more_rows_exist (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/invalid_cursor_returns_validation_error (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/zero (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/negative (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/out-of-range_past_limit_returns_validation_error/above_max (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/empty_cursor_string_is_ignored_(treated_as_no_cursor) (0.00s)
--- PASS: TestListReceivedInvitationsBucketsAndPagination/repository_error_on_past_bucket_propagates (0.00s)
=== RUN TestGetReceivedInvitation
=== RUN TestGetReceivedInvitation/happy_path_returns_translated_DTO
=== RUN TestGetReceivedInvitation/ErrNotFound_from_repo_maps_to_invitation_not_found_404
=== RUN TestGetReceivedInvitation/unexpected_repo_error_propagates_wrapped
--- PASS: TestGetReceivedInvitation (0.00s)
--- PASS: TestGetReceivedInvitation/happy_path_returns_translated_DTO (0.00s)
--- PASS: TestGetReceivedInvitation/ErrNotFound_from_repo_maps_to_invitation_not_found_404 (0.00s)
--- PASS: TestGetReceivedInvitation/unexpected_repo_error_propagates_wrapped (0.00s)
=== RUN TestRevokeInvitationDelegatesToRepo
--- PASS: TestRevokeInvitationDelegatesToRepo (0.00s)
=== RUN TestRevokeInvitationPropagatesRepoError
--- PASS: TestRevokeInvitationPropagatesRepoError (0.00s)
=== RUN TestCreateInvitationsValidatesUsernameCount
--- PASS: TestCreateInvitationsValidatesUsernameCount (0.00s)
=== RUN TestCreateInvitationsNotifiesSuccessfulInvitedUsers
--- PASS: TestCreateInvitationsNotifiesSuccessfulInvitedUsers (0.00s)
=== RUN TestAcceptInvitationNotifiesHostWithoutFailingAction
2026/05/16 14:42:43 ERROR invitation response notification send failed operation=invitation.response.notification.send invitation_id=1ee06944-27e5-4eb6-a3ca-1f2675024e81 event_id=a2563dcf-5357-47dd-a34a-6abc701f649f receiver_user_id=22c79392-f938-40b2-9551-743023243e0e status=ACCEPTED error="send failed"
2026/05/16 14:42:43 INFO invitation accepted operation=invitation.accept invitation_id=1ee06944-27e5-4eb6-a3ca-1f2675024e81 event_id=a2563dcf-5357-47dd-a34a-6abc701f649f user_id=c5b20cbc-b26a-4666-a5f1-fb0ef9a3301d participation_id=c7015bcc-a7fd-4e8a-8301-87af37fa590e participation_status=APPROVED accepted_event_version=0 ticket_created=false
--- PASS: TestAcceptInvitationNotifiesHostWithoutFailingAction (0.00s)
=== RUN TestDeclineInvitationNotifiesHost
--- PASS: TestDeclineInvitationNotifiesHost (0.00s)
=== RUN TestCreateInvitationsReturnsPartialCounts
--- PASS: TestCreateInvitationsReturnsPartialCounts (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/invitation 1.382s
=== RUN TestCreatePendingJoinRequestDelegatesToRepo
--- PASS: TestCreatePendingJoinRequestDelegatesToRepo (0.00s)
=== RUN TestCreatePendingJoinRequestPropagatesRepoError
--- PASS: TestCreatePendingJoinRequestPropagatesRepoError (0.00s)
=== RUN TestApproveJoinRequestDelegatesToRepo
2026/05/16 14:42:44 INFO join request approved operation=join_request.approve event_id=cd8b27fa-f154-4d32-8c67-d2440d83b406 join_request_id=dab7c338-0ad7-4857-855e-6fac4773b390 host_user_id=c849f47c-fbea-4ccb-bde7-f7e7595664f6 participation_id=d7170ad8-7786-4674-867d-24a280cfc46b participant_user_id=540fc70a-1dd5-4438-80bf-15b707e78673 participation_status=APPROVED accepted_event_version=0 ticket_service_enabled=false
--- PASS: TestApproveJoinRequestDelegatesToRepo (0.00s)
=== RUN TestApproveJoinRequestCreatesActiveTicket
2026/05/16 14:42:44 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=80e2be91-0eec-47ea-b3f7-bdaec287eeff join_request_id=51b3ade4-8e80-405d-ab6c-bbbd9da79ae3 host_user_id=b059b945-6ec5-429a-9e24-20a8eb48790f participation_id=f1ebc784-53b8-4de8-8267-9a8b52c416f3 participant_user_id=88671968-737e-4af4-b0af-e9344c84a225 ticket_status=ACTIVE
2026/05/16 14:42:44 INFO join request approved operation=join_request.approve event_id=80e2be91-0eec-47ea-b3f7-bdaec287eeff join_request_id=51b3ade4-8e80-405d-ab6c-bbbd9da79ae3 host_user_id=b059b945-6ec5-429a-9e24-20a8eb48790f participation_id=f1ebc784-53b8-4de8-8267-9a8b52c416f3 participant_user_id=88671968-737e-4af4-b0af-e9344c84a225 participation_status=APPROVED accepted_event_version=0 ticket_service_enabled=true
--- PASS: TestApproveJoinRequestCreatesActiveTicket (0.00s)
=== RUN TestRejectJoinRequestDelegatesToRepo
--- PASS: TestRejectJoinRequestDelegatesToRepo (0.00s)
=== RUN TestApproveJoinRequestNotifiesRequester
2026/05/16 14:42:44 INFO join request approved operation=join_request.approve event_id=83e23f5b-b860-4df7-8949-56438788f9c4 join_request_id=b1ad9cdf-e5f3-402d-bc43-f70e38340075 host_user_id=768816ae-4fc8-4304-99d7-f1576a41a1e2 participation_id=daabfeb9-2067-41a4-8f47-50ddf9da745b participant_user_id=80bb3998-4421-4731-9b64-9938153c3042 participation_status=APPROVED accepted_event_version=0 ticket_service_enabled=false
--- PASS: TestApproveJoinRequestNotifiesRequester (0.00s)
=== RUN TestRejectJoinRequestNotifiesRequesterWithoutFailingAction
2026/05/16 14:42:44 ERROR join request notification send failed operation=join_request.notification.send join_request_id=28ab70d6-c91c-4b67-bc72-96994b5bcb2a event_id=8ed0c57b-dd75-447f-8911-b702747481d6 receiver_user_id=0447c26a-3673-4095-b733-fb0af44cece1 status=REJECTED error="send failed"
--- PASS: TestRejectJoinRequestNotifiesRequesterWithoutFailingAction (0.00s)
=== RUN TestCancelJoinRequestDelegatesToRepo
--- PASS: TestCancelJoinRequestDelegatesToRepo (0.00s)
=== RUN TestCancelJoinRequestPropagatesRepoError
--- PASS: TestCancelJoinRequestPropagatesRepoError (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/join_request 1.389s
=== RUN TestSendNotificationTranslatesPerRecipient
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=2 created_count=2 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendNotificationTranslatesPerRecipient (0.00s)
=== RUN TestSendNotificationFallsBackToLiteralWhenNoTranslator
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendNotificationFallsBackToLiteralWhenNoTranslator (0.00s)
=== RUN TestRegisterDeviceUpsertsTokenAndEnforcesTwoDeviceLimit
--- PASS: TestRegisterDeviceUpsertsTokenAndEnforcesTwoDeviceLimit (0.00s)
=== RUN TestRegisterDeviceReassignsTokenFromPreviousUser
--- PASS: TestRegisterDeviceReassignsTokenFromPreviousUser (0.00s)
=== RUN TestSendPushToUsersStoresResultsAndRevokesInvalidToken
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=47496b28-28b1-48c4-91cf-88cfcf129680 device_id=8cfe71ca-5c30-427f-8158-21249cbc533e attempt=1 error="invalid token"
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=2 push_sent_count=1 push_failed_count=1 invalid_token_count=1
--- PASS: TestSendPushToUsersStoresResultsAndRevokesInvalidToken (0.00s)
=== RUN TestSendNotificationToUsersSkipsPushWhenSSEReceivesNotification
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=1 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendNotificationToUsersSkipsPushWhenSSEReceivesNotification (0.00s)
=== RUN TestSendNotificationToUsersIsIdempotent
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=1 push_sent_count=1 push_failed_count=0 invalid_token_count=0
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=0 idempotent_count=1 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendNotificationToUsersIsIdempotent (0.00s)
=== RUN TestSendNotificationRetriesPushUntilSuccess
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=6d5ae1cd-3696-4afa-9c89-97c0b5e74647 device_id=edc4d2ff-4b20-4af4-a46e-e959487dabd6 attempt=1 error="temporary push failure"
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=6d5ae1cd-3696-4afa-9c89-97c0b5e74647 device_id=edc4d2ff-4b20-4af4-a46e-e959487dabd6 attempt=2 error="temporary push failure"
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=1 push_sent_count=1 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendNotificationRetriesPushUntilSuccess (0.00s)
=== RUN TestSendNotificationStopsAfterTwoPushRetries
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=7314d8a2-a3a7-4372-8ba9-41430a70d835 device_id=ccd24255-1363-42b7-91d1-69f5cdc2c9e2 attempt=1 error="temporary push failure"
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=7314d8a2-a3a7-4372-8ba9-41430a70d835 device_id=ccd24255-1363-42b7-91d1-69f5cdc2c9e2 attempt=2 error="temporary push failure"
2026/05/16 14:42:44 ERROR push notification delivery failed operation=notification.push.device_send user_id=7314d8a2-a3a7-4372-8ba9-41430a70d835 device_id=ccd24255-1363-42b7-91d1-69f5cdc2c9e2 attempt=3 error="temporary push failure"
2026/05/16 14:42:44 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=1 push_sent_count=0 push_failed_count=1 invalid_token_count=0
--- PASS: TestSendNotificationStopsAfterTwoPushRetries (0.00s)
=== RUN TestSendCustomNotificationBothUsesSSEAndPush
2026/05/16 14:42:44 INFO admin custom notifications sent operation=admin.notifications.send delivery_mode=BOTH target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=1 push_active_device_count=1 push_sent_count=1 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendCustomNotificationBothUsesSSEAndPush (0.00s)
=== RUN TestSendCustomNotificationInAppSkipsPush
2026/05/16 14:42:44 INFO admin custom notifications sent operation=admin.notifications.send delivery_mode=IN_APP target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestSendCustomNotificationInAppSkipsPush (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/notification 1.376s
=== RUN TestCreateApprovedParticipationDelegatesToRepo
--- PASS: TestCreateApprovedParticipationDelegatesToRepo (0.00s)
=== RUN TestCreateApprovedParticipationPropagatesRepoError
--- PASS: TestCreateApprovedParticipationPropagatesRepoError (0.00s)
=== RUN TestLeaveParticipationDelegatesToRepo
--- PASS: TestLeaveParticipationDelegatesToRepo (0.00s)
=== RUN TestCancelEventParticipationsDelegatesToRepo
--- PASS: TestCancelEventParticipationsDelegatesToRepo (0.00s)
=== RUN TestEvaluateBadgesForEventParticipantsDelegatesToRepoAndEvaluator
--- PASS: TestEvaluateBadgesForEventParticipantsDelegatesToRepoAndEvaluator (0.00s)
=== RUN TestEvaluateBadgesForEventParticipantsPropagatesRepoError
--- PASS: TestEvaluateBadgesForEventParticipantsPropagatesRepoError (0.00s)
=== RUN TestEvaluateBadgesForEventParticipantsIgnoresEvaluatorErrors
2026/05/16 14:42:44 WARN participation badge evaluation failed operation=participation.evaluate_badges_for_event event_id=cee74d35-b4b2-4608-991f-bce9485645f7 user_id=9295df47-c190-4bc3-9444-f05dca7adba0 error="badge backend down"
2026/05/16 14:42:44 WARN participation badge evaluation failed operation=participation.evaluate_badges_for_event event_id=cee74d35-b4b2-4608-991f-bce9485645f7 user_id=fe551510-0740-4092-9541-1e23bf778e9f error="badge backend down"
--- PASS: TestEvaluateBadgesForEventParticipantsIgnoresEvaluatorErrors (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/participation 1.361s
=== RUN TestGetMyProfileMapsHostScore
--- PASS: TestGetMyProfileMapsHostScore (0.00s)
=== RUN TestGetMyProfileMapsParticipantScore
--- PASS: TestGetMyProfileMapsParticipantScore (0.00s)
=== RUN TestGetMyProfileNullScoresForNewUser
--- PASS: TestGetMyProfileNullScoresForNewUser (0.00s)
=== RUN TestGetMyProfilePropagatesRepoError
--- PASS: TestGetMyProfilePropagatesRepoError (0.00s)
=== RUN TestGetPublicProfileIncludesEquipmentAndShowcase
--- PASS: TestGetPublicProfileIncludesEquipmentAndShowcase (0.00s)
=== RUN TestGetPublicProfileMapsUserNotFound
--- PASS: TestGetPublicProfileMapsUserNotFound (0.00s)
=== RUN TestGetMyHostedEventsIncludesPrivacyLevel
--- PASS: TestGetMyHostedEventsIncludesPrivacyLevel (0.00s)
=== RUN TestGetMyUpcomingEventsIncludesPrivacyLevel
--- PASS: TestGetMyUpcomingEventsIncludesPrivacyLevel (0.00s)
=== RUN TestGetMyCanceledEventsIncludesPrivacyLevel
--- PASS: TestGetMyCanceledEventsIncludesPrivacyLevel (0.00s)
=== RUN TestCreateMyEquipmentNormalizesOptionalFields
--- PASS: TestCreateMyEquipmentNormalizesOptionalFields (0.00s)
=== RUN TestUpdateMyEquipmentRejectsForeignOwner
--- PASS: TestUpdateMyEquipmentRejectsForeignOwner (0.00s)
=== RUN TestDeleteMyShowcaseImageRejectsForeignOwner
--- PASS: TestDeleteMyShowcaseImageRejectsForeignOwner (0.00s)
=== RUN TestChangePassword_Success
--- PASS: TestChangePassword_Success (0.00s)
=== RUN TestChangePassword_WrongOldPassword
--- PASS: TestChangePassword_WrongOldPassword (0.00s)
=== RUN TestChangePassword_ValidationFailsShortNew
--- PASS: TestChangePassword_ValidationFailsShortNew (0.00s)
=== RUN TestChangePassword_SamePassword
--- PASS: TestChangePassword_SamePassword (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/profile 1.326s
=== RUN TestUpsertEventRatingNormalizesBlankMessageAndRefreshesHostScore
--- PASS: TestUpsertEventRatingNormalizesBlankMessageAndRefreshesHostScore (0.00s)
=== RUN TestUpsertEventRatingRejectsInvalidInput
--- PASS: TestUpsertEventRatingRejectsInvalidInput (0.00s)
=== RUN TestUpsertEventRatingRejectsCanceledEvent
--- PASS: TestUpsertEventRatingRejectsCanceledEvent (0.00s)
=== RUN TestUpsertEventRatingRejectsHostSelfBeforeApprovedParticipantCheck
--- PASS: TestUpsertEventRatingRejectsHostSelfBeforeApprovedParticipantCheck (0.00s)
=== RUN TestUpsertParticipantRatingRejectsHostSelf
--- PASS: TestUpsertParticipantRatingRejectsHostSelf (0.00s)
=== RUN TestUpsertParticipantRatingRefreshesWeightedFinalScore
--- PASS: TestUpsertParticipantRatingRefreshesWeightedFinalScore (0.00s)
=== RUN TestDeleteEventRatingReturnsNotFoundWhenRecordMissing
--- PASS: TestDeleteEventRatingReturnsNotFoundWhenRecordMissing (0.00s)
=== RUN TestDeleteParticipantRatingUsesStartTimeWhenEndTimeIsNil
--- PASS: TestDeleteParticipantRatingUsesStartTimeWhenEndTimeIsNil (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/rating 1.335s
=== RUN TestIssueQRTokenStoresNextVersionAndHash
2026/05/16 14:42:44 INFO ticket qr token issued operation=ticket.issue_qr_token user_id=1f5142ba-7121-4271-9f48-e978316a99e5 ticket_id=fddf6c0a-7f65-4f3e-a121-b5cf91faa5a4 version=5
--- PASS: TestIssueQRTokenStoresNextVersionAndHash (0.00s)
=== RUN TestIssueQRTokenAllowsPublicEvent
2026/05/16 14:42:44 INFO ticket qr token issued operation=ticket.issue_qr_token user_id=c59a8511-91b9-4edf-9816-fcf31c2f33f8 ticket_id=fe00c2f1-2c0e-46ef-9634-4ebde5a3bca2 version=5
--- PASS: TestIssueQRTokenAllowsPublicEvent (0.00s)
=== RUN TestIssueQRTokenRejectsFarLocation
2026/05/16 14:42:44 INFO ticket qr token rejected operation=ticket.issue_qr_token user_id=63a1706d-e51a-43b8-810d-aef49f5ae4da ticket_id=b047cc0b-13fc-47e9-852a-af36a503ccac event_id=628b1dfd-1d14-4f5e-82fb-801a3eebf209 participation_id=a6a21d3b-2d9f-40af-b903-39f96beda7dd ticket_status=ACTIVE participation_status=APPROVED event_status=ACTIVE error="ticket_proximity_required: You must be near the event location to show this ticket QR."
--- PASS: TestIssueQRTokenRejectsFarLocation (0.00s)
=== RUN TestScanTicketMarksActiveLatestTokenUsed
2026/05/16 14:42:44 INFO ticket scan accepted operation=ticket.scan host_user_id=9480d9fc-1d52-4b3e-bd9b-5012cde22140 event_id=70ec66e2-2fae-49bd-90b2-551a3276760e ticket_id=fba59dbc-f530-4587-b812-02962c648547 participation_id=a7cfdd32-2262-45d1-a179-3e752b41a398 participant_user_id=149c3a66-fe50-47ef-8816-2ab2304e68e6
--- PASS: TestScanTicketMarksActiveLatestTokenUsed (0.00s)
=== RUN TestScanTicketRejectsOldVersion
2026/05/16 14:42:44 INFO ticket scan rejected operation=ticket.scan host_user_id=88c0b594-d6cc-4181-b0e2-ac425773ff0d event_id=0d55d548-ebe6-4017-87b3-07f502b6a832 reason=TOKEN_OLD_VERSION ticket_id=9fdc8461-614c-4596-819d-5c66e70fea05 participation_id=42e7c761-c40e-4b21-a6e3-298e7eded284 participant_user_id=262d8ac1-0275-4aef-a618-8e3842aa98c1 ticket_status=ACTIVE participation_status=APPROVED event_status=ACTIVE
--- PASS: TestScanTicketRejectsOldVersion (0.00s)
=== RUN TestScanTicketAcceptsPrivateEventTicket
2026/05/16 14:42:44 INFO ticket scan accepted operation=ticket.scan host_user_id=898da2de-7547-4a48-a219-454679ee7986 event_id=c19000c0-21d5-4501-b98b-a94d787e6457 ticket_id=06bd1015-9e9d-46ee-bf86-ecd6c8362c01 participation_id=a36d71df-c8a9-489e-9b74-95f6b3292583 participant_user_id=f1dfceb7-2d4a-4b10-8189-8419f2c8204b
--- PASS: TestScanTicketAcceptsPrivateEventTicket (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/application/ticket 1.343s
? github.com/bounswe/bounswe2026group11/backend/internal/application/uow [no test files]
? github.com/bounswe/bounswe2026group11/backend/internal/bootstrap [no test files]
=== RUN TestParseTicketStatusAcceptsKnownStatuses
--- PASS: TestParseTicketStatusAcceptsKnownStatuses (0.00s)
=== RUN TestParseTicketStatusRejectsUnknownStatus
--- PASS: TestParseTicketStatusRejectsUnknownStatus (0.00s)
=== RUN TestParseUserRole
=== RUN TestParseUserRole/user
=== RUN TestParseUserRole/admin
=== RUN TestParseUserRole/trims_and_uppercases
=== RUN TestParseUserRole/rejects_unknown
--- PASS: TestParseUserRole (0.00s)
--- PASS: TestParseUserRole/user (0.00s)
--- PASS: TestParseUserRole/admin (0.00s)
--- PASS: TestParseUserRole/trims_and_uppercases (0.00s)
--- PASS: TestParseUserRole/rejects_unknown (0.00s)
=== RUN TestApproximateGeoPointStaysWithin250m
--- PASS: TestApproximateGeoPointStaysWithin250m (0.00s)
=== RUN TestApproximateGeoPointProducesVariedResults
--- PASS: TestApproximateGeoPointProducesVariedResults (0.00s)
=== RUN TestCheckParticipationEligibilityAllowsWhenNoRestrictions
--- PASS: TestCheckParticipationEligibilityAllowsWhenNoRestrictions (0.00s)
=== RUN TestCheckParticipationEligibilityRejectsUnderageUser
--- PASS: TestCheckParticipationEligibilityRejectsUnderageUser (0.00s)
=== RUN TestCheckParticipationEligibilityRequiresBirthDateWhenAgeRestricted
--- PASS: TestCheckParticipationEligibilityRequiresBirthDateWhenAgeRestricted (0.00s)
=== RUN TestCheckParticipationEligibilityAllowsAtExactMinimumAge
--- PASS: TestCheckParticipationEligibilityAllowsAtExactMinimumAge (0.00s)
=== RUN TestCheckParticipationEligibilityRejectsMismatchedGender
--- PASS: TestCheckParticipationEligibilityRejectsMismatchedGender (0.00s)
=== RUN TestCheckParticipationEligibilityRequiresGenderWhenGenderRestricted
--- PASS: TestCheckParticipationEligibilityRequiresGenderWhenGenderRestricted (0.00s)
=== RUN TestCheckParticipationEligibilityAllowsMatchingGender
--- PASS: TestCheckParticipationEligibilityAllowsMatchingGender (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/domain 1.348s
=== RUN TestResolveFromAcceptLanguage
=== RUN TestResolveFromAcceptLanguage/empty
=== RUN TestResolveFromAcceptLanguage/single_tr
=== RUN TestResolveFromAcceptLanguage/single_en
=== RUN TestResolveFromAcceptLanguage/region_tr-TR
=== RUN TestResolveFromAcceptLanguage/q-weighted_prefers_tr
=== RUN TestResolveFromAcceptLanguage/q-weighted_prefers_en
=== RUN TestResolveFromAcceptLanguage/unsupported_fr_only
=== RUN TestResolveFromAcceptLanguage/unsupported_with_q-zero_supported
=== RUN TestResolveFromAcceptLanguage/unsupported_then_supported
=== RUN TestResolveFromAcceptLanguage/malformed_falls_back_to_false
--- PASS: TestResolveFromAcceptLanguage (0.00s)
--- PASS: TestResolveFromAcceptLanguage/empty (0.00s)
--- PASS: TestResolveFromAcceptLanguage/single_tr (0.00s)
--- PASS: TestResolveFromAcceptLanguage/single_en (0.00s)
--- PASS: TestResolveFromAcceptLanguage/region_tr-TR (0.00s)
--- PASS: TestResolveFromAcceptLanguage/q-weighted_prefers_tr (0.00s)
--- PASS: TestResolveFromAcceptLanguage/q-weighted_prefers_en (0.00s)
--- PASS: TestResolveFromAcceptLanguage/unsupported_fr_only (0.00s)
--- PASS: TestResolveFromAcceptLanguage/unsupported_with_q-zero_supported (0.00s)
--- PASS: TestResolveFromAcceptLanguage/unsupported_then_supported (0.00s)
--- PASS: TestResolveFromAcceptLanguage/malformed_falls_back_to_false (0.00s)
=== RUN TestCatalogTranslate
=== RUN TestCatalogTranslate/hit_en
=== RUN TestCatalogTranslate/hit_tr
=== RUN TestCatalogTranslate/missing_in_tr_falls_back_to_en
=== RUN TestCatalogTranslate/missing_in_both_returns_key
=== RUN TestCatalogTranslate/args_en
=== RUN TestCatalogTranslate/args_tr
--- PASS: TestCatalogTranslate (0.00s)
--- PASS: TestCatalogTranslate/hit_en (0.00s)
--- PASS: TestCatalogTranslate/hit_tr (0.00s)
--- PASS: TestCatalogTranslate/missing_in_tr_falls_back_to_en (0.00s)
--- PASS: TestCatalogTranslate/missing_in_both_returns_key (0.00s)
--- PASS: TestCatalogTranslate/args_en (0.00s)
--- PASS: TestCatalogTranslate/args_tr (0.00s)
=== RUN TestCatalogLoadMissingLocaleFails
--- PASS: TestCatalogLoadMissingLocaleFails (0.00s)
=== RUN TestCatalogNilSafe
--- PASS: TestCatalogNilSafe (0.00s)
=== RUN TestParse
=== RUN TestParse/empty
=== RUN TestParse/plain_en
=== RUN TestParse/plain_tr
=== RUN TestParse/upper_TR
=== RUN TestParse/region_tr-TR
=== RUN TestParse/underscore_en_US
=== RUN TestParse/unsupported_fr
=== RUN TestParse/unsupported_region_fr-FR
--- PASS: TestParse (0.00s)
--- PASS: TestParse/empty (0.00s)
--- PASS: TestParse/plain_en (0.00s)
--- PASS: TestParse/plain_tr (0.00s)
--- PASS: TestParse/upper_TR (0.00s)
--- PASS: TestParse/region_tr-TR (0.00s)
--- PASS: TestParse/underscore_en_US (0.00s)
--- PASS: TestParse/unsupported_fr (0.00s)
--- PASS: TestParse/unsupported_region_fr-FR (0.00s)
=== RUN TestLocaleFromContext
--- PASS: TestLocaleFromContext (0.00s)
=== RUN TestEmbeddedCatalogLoads
--- PASS: TestEmbeddedCatalogLoads (0.00s)
=== RUN TestEmbeddedCatalogParity
--- PASS: TestEmbeddedCatalogParity (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/i18n 1.351s
? github.com/bounswe/bounswe2026group11/backend/internal/i18n/locales [no test files]
=== RUN TestLoad_RequiredMissing
--- PASS: TestLoad_RequiredMissing (0.00s)
=== RUN TestLoad_OK
--- PASS: TestLoad_OK (0.00s)
=== RUN TestLoad_UsesRepoRootDotEnvWhenRunningFromBackend
--- PASS: TestLoad_UsesRepoRootDotEnvWhenRunningFromBackend (0.00s)
=== RUN TestLoad_UsesRepoRootDotEnvWhenRunningFromCmdServer
--- PASS: TestLoad_UsesRepoRootDotEnvWhenRunningFromCmdServer (0.00s)
=== RUN TestLoad_EnvOverridesYamlAndRepoRootDotEnv
--- PASS: TestLoad_EnvOverridesYamlAndRepoRootDotEnv (0.00s)
=== RUN TestLoad_RequiresSpacesAccessKey
--- PASS: TestLoad_RequiresSpacesAccessKey (0.00s)
=== RUN TestLoad_EmptyJWTSecret
--- PASS: TestLoad_EmptyJWTSecret (0.00s)
=== RUN TestLoad_UsesAppEnvSpecificYaml
--- PASS: TestLoad_UsesAppEnvSpecificYaml (0.00s)
=== RUN TestLoad_RequiresResendAPIKeyWhenProviderIsResend
--- PASS: TestLoad_RequiresResendAPIKeyWhenProviderIsResend (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/infrastructure/config 1.374s
? github.com/bounswe/bounswe2026group11/backend/internal/infrastructure/database [no test files]
=== RUN TestSetupDisabledWithoutEndpoint
--- PASS: TestSetupDisabledWithoutEndpoint (0.00s)
=== RUN TestConfigureLoggerWritesToStdoutWithoutProvider
--- PASS: TestConfigureLoggerWritesToStdoutWithoutProvider (0.00s)
=== RUN TestConfigureLoggerSkipsStdoutWhenProviderIsConfigured
--- PASS: TestConfigureLoggerSkipsStdoutWhenProviderIsConfigured (0.00s)
=== RUN TestLevelAttrHandlerAddsLevelAttribute
--- PASS: TestLevelAttrHandlerAddsLevelAttribute (0.00s)
=== RUN TestLevelAttrHandlerDoesNotDuplicateExistingLevelAttribute
--- PASS: TestLevelAttrHandlerDoesNotDuplicateExistingLevelAttribute (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/infrastructure/observability 1.441s
=== RUN TestGlobalSecurityMiddlewareSetsHeaders
--- PASS: TestGlobalSecurityMiddlewareSetsHeaders (0.00s)
=== RUN TestGlobalSecurityMiddlewareAllowsConfiguredCORSOrigin
--- PASS: TestGlobalSecurityMiddlewareAllowsConfiguredCORSOrigin (0.00s)
=== RUN TestGlobalSecurityMiddlewareAllowsConfiguredWildcardSubdomain
--- PASS: TestGlobalSecurityMiddlewareAllowsConfiguredWildcardSubdomain (0.00s)
=== RUN TestGlobalSecurityMiddlewareRejectsOversizedBody
--- PASS: TestGlobalSecurityMiddlewareRejectsOversizedBody (0.00s)
=== RUN TestGlobalSecurityMiddlewareRecoversPanics
--- PASS: TestGlobalSecurityMiddlewareRecoversPanics (0.00s)
PASS
ok github.com/bounswe/bounswe2026group11/backend/internal/server 1.463s
2026/05/16 14:42:46 github.com/testcontainers/testcontainers-go - Connected to docker:
Server Version: 27.5.1
API Version: 1.47
Operating System: Docker Desktop
Total Memory: 7837 MB
Labels:
com.docker.desktop.address=unix:///Users/sevdepekkose/Library/Containers/com.docker.docker/Data/docker-cli.sock
Testcontainers for Go Version: v0.41.0
Resolved Docker Host: unix:///var/run/docker.sock
Resolved Docker Socket Path: /var/run/docker.sock
Test SessionID: 59161c4b3640f81d3bd17972039adfb2a222d84d097a5304ac578062ab597814
Test ProcessID: 003bea44-0b79-4e66-867b-bca533b87621
2026/05/16 14:42:46 🐳 Creating container for image postgis/postgis:16-3.4
2026/05/16 14:42:46 No image auth found for https://index.docker.io/v1/. Setting empty credentials for the image: testcontainers/ryuk:0.13.0. This is expected for public images. Details: credentials not found in native keychain
2026/05/16 14:42:50 🐳 Creating container for image testcontainers/ryuk:0.13.0
2026/05/16 14:42:50 ✅ Container created: dce3217ba133
2026/05/16 14:42:50 🐳 Starting container: dce3217ba133
2026/05/16 14:42:50 ✅ Container started: dce3217ba133
2026/05/16 14:42:50 ⏳ Waiting for container id dce3217ba133 image: testcontainers/ryuk:0.13.0. Waiting for: port 8080/tcp to be listening
2026/05/16 14:42:50 Shell not executable in container, only external port validated
2026/05/16 14:42:50 🔔 Container is ready: dce3217ba133
2026/05/16 14:42:50 ✅ Container created: 2add9d990c98
2026/05/16 14:42:50 🐳 Starting container: 2add9d990c98
2026/05/16 14:42:50 ✅ Container started: 2add9d990c98
2026/05/16 14:42:50 ⏳ Waiting for container id 2add9d990c98 image: postgis/postgis:16-3.4. Waiting for: all of: [all of: [port 5432/tcp to be listening, log message "database system is ready to accept connections" (occurrence: 2)]]
2026/05/16 14:43:02 🔔 Container is ready: 2add9d990c98
=== RUN TestAdminUsersEndpointAuthorizationAndFiltering
=== PAUSE TestAdminUsersEndpointAuthorizationAndFiltering
=== RUN TestAdminEventsParticipationsAndTicketsFiltering
=== PAUSE TestAdminEventsParticipationsAndTicketsFiltering
=== RUN TestAdminCreateNotificationMutation
=== PAUSE TestAdminCreateNotificationMutation
=== RUN TestAdminCreateAndCancelParticipationMutationCreatesAndCancelsTicket
=== PAUSE TestAdminCreateAndCancelParticipationMutationCreatesAndCancelsTicket
=== RUN TestAudienceAttributes_CreateAndDetail
=== PAUSE TestAudienceAttributes_CreateAndDetail
=== RUN TestAudienceAttributes_FilterByChildFriendly
=== PAUSE TestAudienceAttributes_FilterByChildFriendly
=== RUN TestAudienceAttributes_FilterByFamilyOriented
=== PAUSE TestAudienceAttributes_FilterByFamilyOriented
=== RUN TestAudienceAttributes_DefaultsFalse
=== PAUSE TestAudienceAttributes_DefaultsFalse
=== RUN TestAuthCheckAvailabilityReturnsTakenForPersistedIdentity
=== PAUSE TestAuthCheckAvailabilityReturnsTakenForPersistedIdentity
=== RUN TestAuthRequestPasswordResetOTPStoresChallengeForExistingUser
=== PAUSE TestAuthRequestPasswordResetOTPStoresChallengeForExistingUser
=== RUN TestAuthRequestPasswordResetOTPUnknownEmailReturnsSilently
=== PAUSE TestAuthRequestPasswordResetOTPUnknownEmailReturnsSilently
=== RUN TestAuthVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP
=== PAUSE TestAuthVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP
=== RUN TestAuthResetPasswordUpdatesStoredHashAndAllowsLoginWithNewPassword
=== PAUSE TestAuthResetPasswordUpdatesStoredHashAndAllowsLoginWithNewPassword
=== RUN TestAuthVerifyRegistrationOTPPersistsUserProfileAndRefreshToken
=== PAUSE TestAuthVerifyRegistrationOTPPersistsUserProfileAndRefreshToken
=== RUN TestAuthVerifyRegistrationOTPRollsBackOnUsernameConflict
=== PAUSE TestAuthVerifyRegistrationOTPRollsBackOnUsernameConflict
=== RUN TestListCategoriesReturnsSeedData
=== PAUSE TestListCategoriesReturnsSeedData
=== RUN TestListCategoriesResponseShape
=== PAUSE TestListCategoriesResponseShape
=== RUN TestPublicEventCommentsListTopLevelAndRepliesSeparately
=== PAUSE TestPublicEventCommentsListTopLevelAndRepliesSeparately
=== RUN TestPrivateEventCommentsRejectedForVisibleHost
=== PAUSE TestPrivateEventCommentsRejectedForVisibleHost
=== RUN TestReviewCommentUpdatesHostScoreAndViewerRating
=== PAUSE TestReviewCommentUpdatesHostScoreAndViewerRating
=== RUN TestCreateEventSuccessPath
=== PAUSE TestCreateEventSuccessPath
=== RUN TestCreateEventPersistsInternalHostParticipationWithoutChangingVisibleCounts
=== PAUSE TestCreateEventPersistsInternalHostParticipationWithoutChangingVisibleCounts
=== RUN TestCreateEventWithoutEndTime
=== PAUSE TestCreateEventWithoutEndTime
=== RUN TestCreateEventValidationEmptyTitle
=== PAUSE TestCreateEventValidationEmptyTitle
=== RUN TestCreateEventValidationTooManyTags
=== PAUSE TestCreateEventValidationTooManyTags
=== RUN TestCreateEventValidationInvalidPrivacyLevel
=== PAUSE TestCreateEventValidationInvalidPrivacyLevel
=== RUN TestCreateEventValidationEndTimeBeforeStartTime
=== PAUSE TestCreateEventValidationEndTimeBeforeStartTime
=== RUN TestCreateEventRejectsDuplicateTitleForSameHost
=== PAUSE TestCreateEventRejectsDuplicateTitleForSameHost
=== RUN TestCreateEventAllowsSameTitleForDifferentHosts
=== PAUSE TestCreateEventAllowsSameTitleForDifferentHosts
=== RUN TestCreateRouteEventSuccessPath
=== PAUSE TestCreateRouteEventSuccessPath
=== RUN TestDiscoverEventsReturnsOnlyNearbyActivePublicAndProtectedEvents
=== PAUSE TestDiscoverEventsReturnsOnlyNearbyActivePublicAndProtectedEvents
=== RUN TestDiscoverEventsIncludesRouteWhenAnyRoutePointFallsWithinRadius
=== PAUSE TestDiscoverEventsIncludesRouteWhenAnyRoutePointFallsWithinRadius
=== RUN TestDiscoverEventsSortsRouteByFirstPointWhenUsingDistance
=== PAUSE TestDiscoverEventsSortsRouteByFirstPointWhenUsingDistance
=== RUN TestDiscoverEventsSearchMatchesTitleDescriptionAndTags
=== PAUSE TestDiscoverEventsSearchMatchesTitleDescriptionAndTags
=== RUN TestDiscoverEventsAppliesPrivacyLevelFilter
=== PAUSE TestDiscoverEventsAppliesPrivacyLevelFilter
=== RUN TestDiscoverEventsAppliesSearchAndFiltersTogether
=== PAUSE TestDiscoverEventsAppliesSearchAndFiltersTogether
=== RUN TestDiscoverEventsSortsByDistance
=== PAUSE TestDiscoverEventsSortsByDistance
=== RUN TestDiscoverEventsReflectsFavoriteStateForCurrentUser
=== PAUSE TestDiscoverEventsReflectsFavoriteStateForCurrentUser
=== RUN TestDiscoverEventsHostScoreReflectsHostRatingCountAndScore
=== PAUSE TestDiscoverEventsHostScoreReflectsHostRatingCountAndScore
=== RUN TestDiscoverEventsCursorPaginationIsStableAndNonOverlapping
=== PAUSE TestDiscoverEventsCursorPaginationIsStableAndNonOverlapping
=== RUN TestGetEventDetailReadsPublicEventForAuthenticatedUser
=== PAUSE TestGetEventDetailReadsPublicEventForAuthenticatedUser
=== RUN TestGetEventDetailReadsProtectedEventForAnyAuthenticatedUser
=== PAUSE TestGetEventDetailReadsProtectedEventForAnyAuthenticatedUser
=== RUN TestGetEventDetailReadsPrivateEventForHost
=== PAUSE TestGetEventDetailReadsPrivateEventForHost
=== RUN TestGetEventDetailReadsPrivateEventForApprovedParticipant
=== PAUSE TestGetEventDetailReadsPrivateEventForApprovedParticipant
=== RUN TestGetEventDetailReadsPrivateEventForAcceptedInvitee
=== PAUSE TestGetEventDetailReadsPrivateEventForAcceptedInvitee
=== RUN TestGetEventDetailRejectsPrivateEventForUnrelatedUser
=== PAUSE TestGetEventDetailRejectsPrivateEventForUnrelatedUser
=== RUN TestGetEventDetailReportsViewerParticipationStatuses
=== PAUSE TestGetEventDetailReportsViewerParticipationStatuses
=== RUN TestGetEventDetailReturnsCanceledAndCompletedStatuses
=== PAUSE TestGetEventDetailReturnsCanceledAndCompletedStatuses
=== RUN TestGetEventDetailReturnsRoutePoints
=== PAUSE TestGetEventDetailReturnsRoutePoints
=== RUN TestGetEventDetailReturnsHostOnlyManagementLists
=== PAUSE TestGetEventDetailReturnsHostOnlyManagementLists
=== RUN TestCreateInvitationsCreatesValidAndReportsInvalidAndFailed
=== PAUSE TestCreateInvitationsCreatesValidAndReportsInvalidAndFailed
=== RUN TestInvitationFlowCreatesEventNotifications
2026/05/16 14:43:02 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f018fa13-62b8-4b59-a57c-39198bbc7b4f host_user_id=8d2530d3-d523-44a2-9ecc-396e9fcd50e3 event_version=1
2026/05/16 14:43:02 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:02 INFO ticket created operation=ticket.create_for_participation ticket_id=1494c9d5-c8ab-4d07-933e-e82ee189ea95 participation_id=e57ef255-d4d9-449f-8414-8ae609aa1160 event_id=f018fa13-62b8-4b59-a57c-39198bbc7b4f participant_user_id=b2d326e3-3a61-4ca8-b12e-be2185e8d322 ticket_status=ACTIVE
2026/05/16 14:43:02 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:02 INFO invitation accepted operation=invitation.accept invitation_id=97aa2ba3-54eb-4725-844a-ff3304a7fb3a event_id=f018fa13-62b8-4b59-a57c-39198bbc7b4f user_id=b2d326e3-3a61-4ca8-b12e-be2185e8d322 participation_id=e57ef255-d4d9-449f-8414-8ae609aa1160 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestInvitationFlowCreatesEventNotifications (0.17s)
=== RUN TestAcceptInvitationCreatesParticipationAndAllowsPrivateDetail
=== PAUSE TestAcceptInvitationCreatesParticipationAndAllowsPrivateDetail
=== RUN TestDeclineInvitationCreatesCooldownAndNoParticipation
=== PAUSE TestDeclineInvitationCreatesCooldownAndNoParticipation
=== RUN TestListReceivedInvitationsReturnsCurrentPendingOnly
=== PAUSE TestListReceivedInvitationsReturnsCurrentPendingOnly
=== RUN TestJoinEventSuccessPath
=== PAUSE TestJoinEventSuccessPath
=== RUN TestJoinEventRejectsDuplicate
=== PAUSE TestJoinEventRejectsDuplicate
=== RUN TestJoinEventAllowsRejoinAfterLeavingBeforeStart
=== PAUSE TestJoinEventAllowsRejoinAfterLeavingBeforeStart
=== RUN TestJoinEventRejectsRejoinAfterLeavingStartedEvent
=== PAUSE TestJoinEventRejectsRejoinAfterLeavingStartedEvent
=== RUN TestJoinEventRejectsHostJoiningOwnEvent
=== PAUSE TestJoinEventRejectsHostJoiningOwnEvent
=== RUN TestJoinEventRejectsProtectedEvent
=== PAUSE TestJoinEventRejectsProtectedEvent
=== RUN TestJoinEventRejectsNonExistentEvent
=== PAUSE TestJoinEventRejectsNonExistentEvent
=== RUN TestLeaveEventSuccessPathBeforeStart
=== PAUSE TestLeaveEventSuccessPathBeforeStart
=== RUN TestLeaveEventRejectsHost
=== PAUSE TestLeaveEventRejectsHost
=== RUN TestLeaveEventRejectsPendingJoinRequester
=== PAUSE TestLeaveEventRejectsPendingJoinRequester
=== RUN TestLeaveEventRejectsEndedEvent
=== PAUSE TestLeaveEventRejectsEndedEvent
=== RUN TestEventDetailReturnsVersionDiffUntilParticipantReconfirms
=== PAUSE TestEventDetailReturnsVersionDiffUntilParticipantReconfirms
=== RUN TestRequestJoinSuccessPath
=== PAUSE TestRequestJoinSuccessPath
=== RUN TestRequestJoinImageURLIsVisibleToHostManagementFlows
=== PAUSE TestRequestJoinImageURLIsVisibleToHostManagementFlows
=== RUN TestRequestJoinReflectsPendingStatusInProtectedEventDetail
=== PAUSE TestRequestJoinReflectsPendingStatusInProtectedEventDetail
=== RUN TestRequestJoinRejectsDuplicate
=== PAUSE TestRequestJoinRejectsDuplicate
=== RUN TestRequestJoinAllowsReapplyAfterApprovedParticipationLeavesBeforeStart
=== PAUSE TestRequestJoinAllowsReapplyAfterApprovedParticipationLeavesBeforeStart
=== RUN TestRequestJoinRejectsReapplyAfterLeavingStartedEvent
=== PAUSE TestRequestJoinRejectsReapplyAfterLeavingStartedEvent
=== RUN TestRequestJoinRejectsHostRequestingOwnEvent
=== PAUSE TestRequestJoinRejectsHostRequestingOwnEvent
=== RUN TestRequestJoinRejectsPublicEvent
=== PAUSE TestRequestJoinRejectsPublicEvent
=== RUN TestRequestJoinRejectsNonExistentEvent
=== PAUSE TestRequestJoinRejectsNonExistentEvent
=== RUN TestApproveJoinRequestSuccessPath
=== PAUSE TestApproveJoinRequestSuccessPath
=== RUN TestApproveJoinRequestCreatesRequesterNotification
2026/05/16 14:43:02 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 host_user_id=3b8ff922-c810-421c-84a6-d3b3078bdf5c event_version=1
2026/05/16 14:43:02 INFO event join request created operation=event.join_request.create event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 user_id=6535ead5-1f28-4835-a165-1227db9601c7 host_user_id=3b8ff922-c810-421c-84a6-d3b3078bdf5c join_request_id=09cb5596-b022-4d8f-b472-fccd0bd3dcf9 join_request_status=PENDING
2026/05/16 14:43:02 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 join_request_id=09cb5596-b022-4d8f-b472-fccd0bd3dcf9 host_user_id=3b8ff922-c810-421c-84a6-d3b3078bdf5c participation_id=3ca2477a-bea3-432c-af69-697d01799f62 participant_user_id=6535ead5-1f28-4835-a165-1227db9601c7 ticket_status=ACTIVE
2026/05/16 14:43:02 INFO ticket created operation=ticket.create_for_participation ticket_id=76ba71ed-f004-4ba3-a7b1-2680987d085e participation_id=3ca2477a-bea3-432c-af69-697d01799f62 event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 participant_user_id=6535ead5-1f28-4835-a165-1227db9601c7 ticket_status=ACTIVE
2026/05/16 14:43:02 INFO join request approved operation=join_request.approve event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 join_request_id=09cb5596-b022-4d8f-b472-fccd0bd3dcf9 host_user_id=3b8ff922-c810-421c-84a6-d3b3078bdf5c participation_id=3ca2477a-bea3-432c-af69-697d01799f62 participant_user_id=6535ead5-1f28-4835-a165-1227db9601c7 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:02 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:02 INFO event join request approved operation=event.join_request.approve event_id=1f6a7474-a77e-4a31-ab4e-4bf782b121a4 host_user_id=3b8ff922-c810-421c-84a6-d3b3078bdf5c join_request_id=09cb5596-b022-4d8f-b472-fccd0bd3dcf9 participation_id=3ca2477a-bea3-432c-af69-697d01799f62 participant_user_id=6535ead5-1f28-4835-a165-1227db9601c7 participation_status=APPROVED accepted_event_version=1
--- PASS: TestApproveJoinRequestCreatesRequesterNotification (0.06s)
=== RUN TestRejectJoinRequestSuccessPath
=== PAUSE TestRejectJoinRequestSuccessPath
=== RUN TestApproveJoinRequestRejectsNonHost
=== PAUSE TestApproveJoinRequestRejectsNonHost
=== RUN TestRejectJoinRequestRejectsNonHost
=== PAUSE TestRejectJoinRequestRejectsNonHost
=== RUN TestApproveJoinRequestRejectsResolvedRequest
=== PAUSE TestApproveJoinRequestRejectsResolvedRequest
=== RUN TestRejectJoinRequestRejectsResolvedRequest
=== PAUSE TestRejectJoinRequestRejectsResolvedRequest
=== RUN TestApproveJoinRequestRejectsWhenCapacityIsFull
=== PAUSE TestApproveJoinRequestRejectsWhenCapacityIsFull
=== RUN TestRequestJoinRejectsDuringCooldownWindow
=== PAUSE TestRequestJoinRejectsDuringCooldownWindow
=== RUN TestRequestJoinReactivatesRejectedRequestAfterCooldown
=== PAUSE TestRequestJoinReactivatesRejectedRequestAfterCooldown
=== RUN TestDiscoverEventsAnonymousHidesAgeRestrictedEvents
=== PAUSE TestDiscoverEventsAnonymousHidesAgeRestrictedEvents
=== RUN TestDiscoverEventsAnonymousHidesGenderRestrictedEvents
=== PAUSE TestDiscoverEventsAnonymousHidesGenderRestrictedEvents
=== RUN TestDiscoverEventsAuthedAdultSeesAgeRestrictedEvent
=== PAUSE TestDiscoverEventsAuthedAdultSeesAgeRestrictedEvent
=== RUN TestDiscoverEventsAuthedMinorHidesAgeRestrictedEvent
=== PAUSE TestDiscoverEventsAuthedMinorHidesAgeRestrictedEvent
=== RUN TestDiscoverEventsMinimumAgeFilterReturnsOnlyEventsAtOrAboveTheRequestedThreshold
=== PAUSE TestDiscoverEventsMinimumAgeFilterReturnsOnlyEventsAtOrAboveTheRequestedThreshold
=== RUN TestDiscoverEventsAuthedGenderMatchSeesAndMismatchHides
=== PAUSE TestDiscoverEventsAuthedGenderMatchSeesAndMismatchHides
=== RUN TestDiscoverEventsAuthedMissingBirthDateSeesAgeRestrictedEvent
=== PAUSE TestDiscoverEventsAuthedMissingBirthDateSeesAgeRestrictedEvent
=== RUN TestDiscoverEventsAuthedMissingGenderSeesGenderRestrictedEvent
=== PAUSE TestDiscoverEventsAuthedMissingGenderSeesGenderRestrictedEvent
=== RUN TestIntegrationJoinEventRejectsUnderageUser
=== PAUSE TestIntegrationJoinEventRejectsUnderageUser
=== RUN TestIntegrationRequestJoinRejectsMismatchedGender
=== PAUSE TestIntegrationRequestJoinRejectsMismatchedGender
=== RUN TestTransitionEventStatuses_ExpiredToCompleted
=== PAUSE TestTransitionEventStatuses_ExpiredToCompleted
=== RUN TestTransitionEventStatuses_StartedToInProgress
=== PAUSE TestTransitionEventStatuses_StartedToInProgress
=== RUN TestTransitionEventStatuses_StaleEventAutoCompletes
=== PAUSE TestTransitionEventStatuses_StaleEventAutoCompletes
=== RUN TestTransitionEventStatuses_VeryOldEventAutoCompletes
=== PAUSE TestTransitionEventStatuses_VeryOldEventAutoCompletes
=== RUN TestTransitionEventStatuses_RecentlyUpdatedOldEventStaysActive
=== PAUSE TestTransitionEventStatuses_RecentlyUpdatedOldEventStaysActive
=== RUN TestCancelEventSuccessPath
=== PAUSE TestCancelEventSuccessPath
=== RUN TestCancelEventPreservesApprovedSnapshotAndSkipsLeavedParticipations
=== PAUSE TestCancelEventPreservesApprovedSnapshotAndSkipsLeavedParticipations
=== RUN TestCancelEventForbiddenForNonHost
=== PAUSE TestCancelEventForbiddenForNonHost
=== RUN TestCancelEventReturnsConflictForNonActiveEvent
=== PAUSE TestCancelEventReturnsConflictForNonActiveEvent
=== RUN TestCompleteEventSuccessPath
=== PAUSE TestCompleteEventSuccessPath
=== RUN TestCompleteEventSuccessOpenEnded
=== PAUSE TestCompleteEventSuccessOpenEnded
=== RUN TestCompleteEventForbiddenForNonHost
=== PAUSE TestCompleteEventForbiddenForNonHost
=== RUN TestCompleteEventReturnsConflictForCanceledOrCompleted
=== PAUSE TestCompleteEventReturnsConflictForCanceledOrCompleted
=== RUN TestCancelEventAppearsInParticipantProfile
=== PAUSE TestCancelEventAppearsInParticipantProfile
=== RUN TestJoinEventRejectsCanceledEvent
=== PAUSE TestJoinEventRejectsCanceledEvent
=== RUN TestRequestJoinRejectsCanceledEvent
=== PAUSE TestRequestJoinRejectsCanceledEvent
=== RUN TestGetEventDetailShowsCanceledParticipationStatus
=== PAUSE TestGetEventDetailShowsCanceledParticipationStatus
=== RUN TestCancelEventAppearsInHostProfile
=== PAUSE TestCancelEventAppearsInHostProfile
=== RUN TestGetMyHostedEventsReturnsCreatedEvents
=== PAUSE TestGetMyHostedEventsReturnsCreatedEvents
=== RUN TestGetMyUpcomingEventsReturnsApprovedActiveEvents
=== PAUSE TestGetMyUpcomingEventsReturnsApprovedActiveEvents
=== RUN TestGetMyUpcomingEventsExcludesCanceledEvent
=== PAUSE TestGetMyUpcomingEventsExcludesCanceledEvent
=== RUN TestGetMyCompletedEventsIncludesLeavedParticipationAfterStart
=== PAUSE TestGetMyCompletedEventsIncludesLeavedParticipationAfterStart
=== RUN TestGetMyCompletedEventsExcludesLeavedParticipationBeforeStart
=== PAUSE TestGetMyCompletedEventsExcludesLeavedParticipationBeforeStart
=== RUN TestAddAndRemoveFavorite
=== PAUSE TestAddAndRemoveFavorite
=== RUN TestGetEventDetailAnonymousCanReadPublicEvent
=== PAUSE TestGetEventDetailAnonymousCanReadPublicEvent
=== RUN TestGetEventDetailAnonymousCannotReadPrivateEvent
=== PAUSE TestGetEventDetailAnonymousCannotReadPrivateEvent
=== RUN TestDiscoverEventsAnonymousSeesOnlyPublicAndProtected
=== PAUSE TestDiscoverEventsAnonymousSeesOnlyPublicAndProtected
=== RUN TestGetMyProfileReturnsScoreFields
=== PAUSE TestGetMyProfileReturnsScoreFields
=== RUN TestGetMyHostedEventsIncludesPrivacyLevel
=== PAUSE TestGetMyHostedEventsIncludesPrivacyLevel
=== RUN TestGetMyUpcomingEventsIncludesPrivacyLevel
=== PAUSE TestGetMyUpcomingEventsIncludesPrivacyLevel
=== RUN TestFavoriteLocationCRUDOrdersAlphabetically
=== PAUSE TestFavoriteLocationCRUDOrdersAlphabetically
=== RUN TestFavoriteLocationCreateRejectsFourthLocation
=== PAUSE TestFavoriteLocationCreateRejectsFourthLocation
=== RUN TestFavoriteLocationOwnershipPreventsCrossUserMutation
=== PAUSE TestFavoriteLocationOwnershipPreventsCrossUserMutation
=== RUN TestConfirmProfileAvatarUploadPersistsURLAndVersion
--- PASS: TestConfirmProfileAvatarUploadPersistsURLAndVersion (0.03s)
=== RUN TestConfirmEventImageUploadPersistsURLAndVersionWithoutChangingEventVersionNo
2026/05/16 14:43:02 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=db2fad8e-4e76-4cc6-bc61-c78588fac177 host_user_id=b5f0ef05-2d98-43ff-b6ba-10d1f049d2ce event_version=1
--- PASS: TestConfirmEventImageUploadPersistsURLAndVersionWithoutChangingEventVersionNo (0.02s)
=== RUN TestListReceivedInvitationsBuckets
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=17b07598-92bc-442b-afab-ca85e1eee834 host_user_id=6fe54a70-0ac3-4bd0-a1ea-19442c8899ec event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3762a894-564a-4a73-ac12-a6afc938c19a host_user_id=6fe54a70-0ac3-4bd0-a1ea-19442c8899ec event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=97113f36-4594-45cf-a8ee-f9665568b68e host_user_id=6fe54a70-0ac3-4bd0-a1ea-19442c8899ec event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=6b808b5b-9e57-4277-b344-78a077fdf7aa host_user_id=6fe54a70-0ac3-4bd0-a1ea-19442c8899ec event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=7a8b24a5-3434-4050-b50e-fa282a798acc host_user_id=6fe54a70-0ac3-4bd0-a1ea-19442c8899ec event_version=1
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=8028057f-c9e0-4291-a941-79804087373f participation_id=2e4414c8-90c2-44b3-9a72-0f0f768036d3 event_id=6b808b5b-9e57-4277-b344-78a077fdf7aa participant_user_id=958a58f4-bbef-4f29-8b88-76c7c4e40fc8 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO invitation accepted operation=invitation.accept invitation_id=2c972192-9959-4308-bd63-1254818531cf event_id=6b808b5b-9e57-4277-b344-78a077fdf7aa user_id=958a58f4-bbef-4f29-8b88-76c7c4e40fc8 participation_id=2e4414c8-90c2-44b3-9a72-0f0f768036d3 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestListReceivedInvitationsBuckets (0.07s)
=== RUN TestListReceivedInvitationsPastPagination
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=779f8258-2c5b-4dba-bc4b-e2f7fbfd6b71 host_user_id=254764fd-b062-43a3-8306-0f00a27b2174 event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3aa37408-49ca-4810-bca2-0a3504358028 host_user_id=254764fd-b062-43a3-8306-0f00a27b2174 event_version=1
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestListReceivedInvitationsPastPagination (0.06s)
=== RUN TestGetReceivedInvitationReturnsAllStatuses
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=4d0f515c-9902-4a9e-a059-cfb875754f12 host_user_id=98472440-7265-4751-af7e-4bc595b46582 event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8491c58d-744d-42b3-996a-a5e1ef50c54c host_user_id=98472440-7265-4751-af7e-4bc595b46582 event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=89462f4b-7183-409f-afa8-f52b7bfb4f98 host_user_id=98472440-7265-4751-af7e-4bc595b46582 event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=4bbfa8af-c5e5-44c3-90c4-66dda1f15bbe host_user_id=98472440-7265-4751-af7e-4bc595b46582 event_version=1
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=9e2a9abc-ad7e-4737-9489-c318480425b7 host_user_id=98472440-7265-4751-af7e-4bc595b46582 event_version=1
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=c0a54d11-d0c2-46ab-9517-48c59365f139 participation_id=32295ff5-dd5d-4908-b160-a846e449398b event_id=8491c58d-744d-42b3-996a-a5e1ef50c54c participant_user_id=d8c31c79-205c-4853-afc4-03e4342f129e ticket_status=ACTIVE
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO invitation accepted operation=invitation.accept invitation_id=bcebfdaf-06c1-42ad-b76b-01ab01f147a4 event_id=8491c58d-744d-42b3-996a-a5e1ef50c54c user_id=d8c31c79-205c-4853-afc4-03e4342f129e participation_id=32295ff5-dd5d-4908-b160-a846e449398b participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
=== RUN TestGetReceivedInvitationReturnsAllStatuses/PENDING
=== RUN TestGetReceivedInvitationReturnsAllStatuses/ACCEPTED
=== RUN TestGetReceivedInvitationReturnsAllStatuses/DECLINED
=== RUN TestGetReceivedInvitationReturnsAllStatuses/EXPIRED
=== RUN TestGetReceivedInvitationReturnsAllStatuses/CANCELED
--- PASS: TestGetReceivedInvitationReturnsAllStatuses (0.06s)
--- PASS: TestGetReceivedInvitationReturnsAllStatuses/PENDING (0.00s)
--- PASS: TestGetReceivedInvitationReturnsAllStatuses/ACCEPTED (0.00s)
--- PASS: TestGetReceivedInvitationReturnsAllStatuses/DECLINED (0.00s)
--- PASS: TestGetReceivedInvitationReturnsAllStatuses/EXPIRED (0.00s)
--- PASS: TestGetReceivedInvitationReturnsAllStatuses/CANCELED (0.00s)
=== RUN TestGetReceivedInvitationDoesNotLeakOtherUsersRows
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8579f2e1-3993-443f-9ec0-be8be79282bb host_user_id=90526b66-9aeb-4569-9692-b54df3be9486 event_version=1
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestGetReceivedInvitationDoesNotLeakOtherUsersRows (0.04s)
=== RUN TestGetReceivedInvitationReturns404ForMissingID
--- PASS: TestGetReceivedInvitationReturns404ForMissingID (0.01s)
=== RUN TestNotificationRegisterDevicePersistsAndEnforcesDeviceLimit
--- PASS: TestNotificationRegisterDevicePersistsAndEnforcesDeviceLimit (0.02s)
=== RUN TestNotificationInboxLifecycleAndIdempotency
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=0 idempotent_count=1 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestNotificationInboxLifecycleAndIdempotency (0.02s)
=== RUN TestNotificationRetentionDeletesExpiredRows
--- PASS: TestNotificationRetentionDeletesExpiredRows (0.01s)
=== RUN TestGetPublicProfileReturnsPublicSafeProfile
--- PASS: TestGetPublicProfileReturnsPublicSafeProfile (0.02s)
=== RUN TestGetPublicProfileReturnsNotFoundForUnknownUser
--- PASS: TestGetPublicProfileReturnsNotFoundForUnknownUser (0.00s)
=== RUN TestMyEquipmentCRUDFlow
--- PASS: TestMyEquipmentCRUDFlow (0.02s)
=== RUN TestMyEquipmentUpdateRejectsForeignOwner
--- PASS: TestMyEquipmentUpdateRejectsForeignOwner (0.03s)
=== RUN TestShowcaseImageLifecycleAndOwnership
--- PASS: TestShowcaseImageLifecycleAndOwnership (0.03s)
=== RUN TestEventRatingUpdatesHostScoreAndEventReadModels
=== PAUSE TestEventRatingUpdatesHostScoreAndEventReadModels
=== RUN TestHostCannotRateOwnEvent
=== PAUSE TestHostCannotRateOwnEvent
=== RUN TestParticipantRatingUpdatesParticipantScoreAndHostContext
=== PAUSE TestParticipantRatingUpdatesParticipantScoreAndHostContext
=== RUN TestProtectedJoinApprovalCreatesActiveTicket
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ba954886-74a4-4055-bf70-7d7586339efc host_user_id=4c1af6ae-2b0a-4327-9e03-07daaf020bb7 event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=ba954886-74a4-4055-bf70-7d7586339efc user_id=2b97b841-b18f-4f13-b366-8322a446b9bb host_user_id=4c1af6ae-2b0a-4327-9e03-07daaf020bb7 join_request_id=9bc89421-d077-46c8-9e99-24a5be433ca8 join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=ba954886-74a4-4055-bf70-7d7586339efc join_request_id=9bc89421-d077-46c8-9e99-24a5be433ca8 host_user_id=4c1af6ae-2b0a-4327-9e03-07daaf020bb7 participation_id=7f0fd8cd-c929-498f-a57a-c74c0e805b95 participant_user_id=2b97b841-b18f-4f13-b366-8322a446b9bb ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=8b5faf91-e338-404a-a326-61349fccdff0 participation_id=7f0fd8cd-c929-498f-a57a-c74c0e805b95 event_id=ba954886-74a4-4055-bf70-7d7586339efc participant_user_id=2b97b841-b18f-4f13-b366-8322a446b9bb ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=ba954886-74a4-4055-bf70-7d7586339efc join_request_id=9bc89421-d077-46c8-9e99-24a5be433ca8 host_user_id=4c1af6ae-2b0a-4327-9e03-07daaf020bb7 participation_id=7f0fd8cd-c929-498f-a57a-c74c0e805b95 participant_user_id=2b97b841-b18f-4f13-b366-8322a446b9bb participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=ba954886-74a4-4055-bf70-7d7586339efc host_user_id=4c1af6ae-2b0a-4327-9e03-07daaf020bb7 join_request_id=9bc89421-d077-46c8-9e99-24a5be433ca8 participation_id=7f0fd8cd-c929-498f-a57a-c74c0e805b95 participant_user_id=2b97b841-b18f-4f13-b366-8322a446b9bb participation_status=APPROVED accepted_event_version=1
--- PASS: TestProtectedJoinApprovalCreatesActiveTicket (0.04s)
=== RUN TestProtectedReconfirmReactivatesPendingTicketAfterEventEdit
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 join_request_id=0bf6c5cb-0916-4666-9a0f-d1f560890750 join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 join_request_id=0bf6c5cb-0916-4666-9a0f-d1f560890750 host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 participant_user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=8def3cf4-15b5-4f9e-b1d2-c63d310aff6e participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 participant_user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 join_request_id=0bf6c5cb-0916-4666-9a0f-d1f560890750 host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 participant_user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 join_request_id=0bf6c5cb-0916-4666-9a0f-d1f560890750 participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 participant_user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:03 INFO event version snapshot created operation=event.update.version_snapshot event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 host_user_id=1e42462a-a2a4-43f2-a9b5-000b93434ce4 from_event_version=1 to_event_version=2 changed_field_count=1 reconfirmation_required=true
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=8def3cf4-15b5-4f9e-b1d2-c63d310aff6e participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 participant_user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f ticket_status=ACTIVE
2026/05/16 14:43:03 INFO event participation reconfirmed operation=event.participation.reconfirm event_id=00652f9c-38fb-4a2c-aca0-bedcc8b13ab3 user_id=7a3e7eef-241c-4088-91e4-4b1df67aeb4f participation_id=3f3cad50-92df-4932-ada2-50c093c8a929 event_version=2 ticket_created=true
--- PASS: TestProtectedReconfirmReactivatesPendingTicketAfterEventEdit (0.05s)
=== RUN TestPrivateReconfirmReactivatesPendingTicketAfterEventEdit
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 host_user_id=1e3fa2e6-e051-4b2e-a127-ab38d74f0468 event_version=1
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=92773fb9-d7a6-489d-93fc-ed560862fb91 participation_id=0d7ccd4f-79b4-402f-abc9-206c9022a5fb event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 participant_user_id=5ad4fa38-b96d-4577-8930-9dabd18a7fe8 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO invitation accepted operation=invitation.accept invitation_id=44bee504-8eb2-42b5-95c4-eec0f775a5eb event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 user_id=5ad4fa38-b96d-4577-8930-9dabd18a7fe8 participation_id=0d7ccd4f-79b4-402f-abc9-206c9022a5fb participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:03 INFO event version snapshot created operation=event.update.version_snapshot event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 host_user_id=1e3fa2e6-e051-4b2e-a127-ab38d74f0468 from_event_version=1 to_event_version=2 changed_field_count=1 reconfirmation_required=true
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=92773fb9-d7a6-489d-93fc-ed560862fb91 participation_id=0d7ccd4f-79b4-402f-abc9-206c9022a5fb event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 participant_user_id=5ad4fa38-b96d-4577-8930-9dabd18a7fe8 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO event participation reconfirmed operation=event.participation.reconfirm event_id=ba19a844-46f2-4e02-8bd1-0f35ebe96d87 user_id=5ad4fa38-b96d-4577-8930-9dabd18a7fe8 participation_id=0d7ccd4f-79b4-402f-abc9-206c9022a5fb event_version=2 ticket_created=true
--- PASS: TestPrivateReconfirmReactivatesPendingTicketAfterEventEdit (0.04s)
=== RUN TestPublicJoinCreatesActiveTicket
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c2f07d9b-fc55-45db-b249-b07393e0d010 host_user_id=d3206065-5997-4cae-b2cd-3b9aa79d2efa event_version=1
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=016792d4-15cd-46bb-998a-727e893a46dd participation_id=39c6ef1a-b35c-435d-a975-f577ce01788c event_id=c2f07d9b-fc55-45db-b249-b07393e0d010 participant_user_id=1558c760-118a-4388-a158-028f4bccfa06 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO event participation created operation=event.participation.create event_id=c2f07d9b-fc55-45db-b249-b07393e0d010 user_id=1558c760-118a-4388-a158-028f4bccfa06 participation_id=39c6ef1a-b35c-435d-a975-f577ce01788c participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestPublicJoinCreatesActiveTicket (0.03s)
=== RUN TestTicketQRScanAcceptsOnceThenRejectsReuse
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c join_request_id=6610a055-5b5b-4ee1-9dcc-b20ec033cf73 join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 join_request_id=6610a055-5b5b-4ee1-9dcc-b20ec033cf73 host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=e3dd2e34-1116-413b-8135-9cb40f51be9c participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 join_request_id=6610a055-5b5b-4ee1-9dcc-b20ec033cf73 host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c join_request_id=6610a055-5b5b-4ee1-9dcc-b20ec033cf73 participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:03 INFO ticket qr token issued operation=ticket.issue_qr_token user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 ticket_id=e3dd2e34-1116-413b-8135-9cb40f51be9c version=1
2026/05/16 14:43:03 INFO ticket scan accepted operation=ticket.scan host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 ticket_id=e3dd2e34-1116-413b-8135-9cb40f51be9c participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361
2026/05/16 14:43:03 INFO ticket scan rejected operation=ticket.scan host_user_id=796895b1-9c0f-4b2c-9f2f-03ed6d98f09c event_id=8ea207cb-adb5-4e76-a826-ed0f6e2720e7 reason=TICKET_ALREADY_USED ticket_id=e3dd2e34-1116-413b-8135-9cb40f51be9c participation_id=28d44f69-bc3f-485d-9772-aadbf215ce16 participant_user_id=b6e72f0d-9b8b-424f-9a63-036da6b96361 ticket_status=USED participation_status=APPROVED event_status=ACTIVE
--- PASS: TestTicketQRScanAcceptsOnceThenRejectsReuse (0.12s)
=== RUN TestTicketDetailOwnershipAndProximity
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 host_user_id=08c0b2df-2395-4299-90b6-95c5977a8288 event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 host_user_id=08c0b2df-2395-4299-90b6-95c5977a8288 join_request_id=89abc662-db97-4db2-a60f-703f7db334ef join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 join_request_id=89abc662-db97-4db2-a60f-703f7db334ef host_user_id=08c0b2df-2395-4299-90b6-95c5977a8288 participation_id=41fe53d8-31f1-4410-b747-bb037d0710bd participant_user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=037758d0-aba5-425a-98e3-6e64a71bc825 participation_id=41fe53d8-31f1-4410-b747-bb037d0710bd event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 participant_user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 join_request_id=89abc662-db97-4db2-a60f-703f7db334ef host_user_id=08c0b2df-2395-4299-90b6-95c5977a8288 participation_id=41fe53d8-31f1-4410-b747-bb037d0710bd participant_user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 host_user_id=08c0b2df-2395-4299-90b6-95c5977a8288 join_request_id=89abc662-db97-4db2-a60f-703f7db334ef participation_id=41fe53d8-31f1-4410-b747-bb037d0710bd participant_user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:03 INFO ticket qr token rejected operation=ticket.issue_qr_token user_id=5e348255-5ae7-4a1d-b9fd-dccc0e8a71e3 ticket_id=037758d0-aba5-425a-98e3-6e64a71bc825 event_id=74c42621-ab21-4192-a02b-f9f10ae72df2 participation_id=41fe53d8-31f1-4410-b747-bb037d0710bd ticket_status=ACTIVE participation_status=APPROVED event_status=ACTIVE error="ticket_proximity_required: You must be near the event location to show this ticket QR."
--- PASS: TestTicketDetailOwnershipAndProximity (0.06s)
=== RUN TestEventCancelCancelsTickets
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a host_user_id=31feb1ff-8d87-4333-891c-6fb710bbd09e event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a user_id=817f2605-a44a-43f2-bac7-add22118f9e0 host_user_id=31feb1ff-8d87-4333-891c-6fb710bbd09e join_request_id=492e213a-2134-4dea-9707-102863df61f7 join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a join_request_id=492e213a-2134-4dea-9707-102863df61f7 host_user_id=31feb1ff-8d87-4333-891c-6fb710bbd09e participation_id=10d73b97-941e-4351-a003-409ade3e6914 participant_user_id=817f2605-a44a-43f2-bac7-add22118f9e0 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=62c26162-7ddf-4b93-a883-c9b54f3b09dc participation_id=10d73b97-941e-4351-a003-409ade3e6914 event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a participant_user_id=817f2605-a44a-43f2-bac7-add22118f9e0 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a join_request_id=492e213a-2134-4dea-9707-102863df61f7 host_user_id=31feb1ff-8d87-4333-891c-6fb710bbd09e participation_id=10d73b97-941e-4351-a003-409ade3e6914 participant_user_id=817f2605-a44a-43f2-bac7-add22118f9e0 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a host_user_id=31feb1ff-8d87-4333-891c-6fb710bbd09e join_request_id=492e213a-2134-4dea-9707-102863df61f7 participation_id=10d73b97-941e-4351-a003-409ade3e6914 participant_user_id=817f2605-a44a-43f2-bac7-add22118f9e0 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:03 INFO event tickets canceled operation=ticket.cancel_for_event event_id=f8815052-be3d-49f3-acda-4de3fd89cc8a
--- PASS: TestEventCancelCancelsTickets (0.10s)
=== RUN TestEventStatusTransitionExpiresUnusedTickets
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=936849e1-74b4-4bf0-94b7-450dfb02287a host_user_id=32253b8f-4a09-4751-84fa-1b7fcbd57d14 event_version=1
2026/05/16 14:43:03 INFO event join request created operation=event.join_request.create event_id=936849e1-74b4-4bf0-94b7-450dfb02287a user_id=7a499d37-35f6-4817-b861-faec2dd50e48 host_user_id=32253b8f-4a09-4751-84fa-1b7fcbd57d14 join_request_id=d4dee860-929a-4d09-ad08-1ccb7a17f190 join_request_status=PENDING
2026/05/16 14:43:03 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=936849e1-74b4-4bf0-94b7-450dfb02287a join_request_id=d4dee860-929a-4d09-ad08-1ccb7a17f190 host_user_id=32253b8f-4a09-4751-84fa-1b7fcbd57d14 participation_id=6ad550b3-3bc3-4d3b-8f03-b4f06662bbca participant_user_id=7a499d37-35f6-4817-b861-faec2dd50e48 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO ticket created operation=ticket.create_for_participation ticket_id=d9e12178-6f32-4847-9b15-f939fea6dcee participation_id=6ad550b3-3bc3-4d3b-8f03-b4f06662bbca event_id=936849e1-74b4-4bf0-94b7-450dfb02287a participant_user_id=7a499d37-35f6-4817-b861-faec2dd50e48 ticket_status=ACTIVE
2026/05/16 14:43:03 INFO join request approved operation=join_request.approve event_id=936849e1-74b4-4bf0-94b7-450dfb02287a join_request_id=d4dee860-929a-4d09-ad08-1ccb7a17f190 host_user_id=32253b8f-4a09-4751-84fa-1b7fcbd57d14 participation_id=6ad550b3-3bc3-4d3b-8f03-b4f06662bbca participant_user_id=7a499d37-35f6-4817-b861-faec2dd50e48 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:03 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:03 INFO event join request approved operation=event.join_request.approve event_id=936849e1-74b4-4bf0-94b7-450dfb02287a host_user_id=32253b8f-4a09-4751-84fa-1b7fcbd57d14 join_request_id=d4dee860-929a-4d09-ad08-1ccb7a17f190 participation_id=6ad550b3-3bc3-4d3b-8f03-b4f06662bbca participant_user_id=7a499d37-35f6-4817-b861-faec2dd50e48 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:03 INFO event tickets expired operation=ticket.expire_for_event event_id=936849e1-74b4-4bf0-94b7-450dfb02287a
--- PASS: TestEventStatusTransitionExpiresUnusedTickets (0.04s)
=== CONT TestAdminCreateNotificationMutation
=== CONT TestFavoriteLocationOwnershipPreventsCrossUserMutation
=== CONT TestDiscoverEventsSearchMatchesTitleDescriptionAndTags
=== CONT TestHostCannotRateOwnEvent
=== CONT TestEventRatingUpdatesHostScoreAndEventReadModels
=== CONT TestParticipantRatingUpdatesParticipantScoreAndHostContext
=== CONT TestGetEventDetailReturnsCanceledAndCompletedStatuses
=== CONT TestRequestJoinSuccessPath
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=148433d0-f90a-443e-b706-2a1957f55fed host_user_id=e67b5412-2799-404b-93b8-ca01d6ffdd89 event_version=1
--- PASS: TestHostCannotRateOwnEvent (0.04s)
=== CONT TestGetEventDetailReturnsHostOnlyManagementLists
2026/05/16 14:43:03 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=10291522-2e72-49ec-8767-bcf306c0fc76 host_user_id=3c091ec1-2c43-488a-b3d9-1ab403d34514 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=933adb5f-112c-4981-ab77-5da614ada74a host_user_id=3c091ec1-2c43-488a-b3d9-1ab403d34514 event_version=1
2026/05/16 14:43:04 INFO admin custom notifications sent operation=admin.notifications.send delivery_mode=IN_APP target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO admin notification mutation completed operation=admin.notifications.create admin_user_id=dc4ac6e8-0844-4f6e-9bff-86d762542b3a delivery_mode=IN_APP target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestAdminCreateNotificationMutation (0.22s)
=== CONT TestLeaveEventRejectsEndedEvent
=== CONT TestLeaveEventRejectsHost
--- PASS: TestGetEventDetailReturnsCanceledAndCompletedStatuses (0.21s)
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=aaa8be36-47db-4e26-9959-caf3f05ec812 host_user_id=e6be6fee-6b71-4331-bd6f-2aa088edb2b8 event_version=1
--- PASS: TestFavoriteLocationOwnershipPreventsCrossUserMutation (0.22s)
=== CONT TestGetEventDetailReturnsRoutePoints
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d12087d8-8d9d-4623-8666-b5cc2f146d6a host_user_id=9fecd797-0145-4f5a-a9ad-900ef1c46f19 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=fe9a9b87-7aa9-4953-bc7f-405f1fa6e4b2 host_user_id=f54aa275-ce03-4e56-9b4f-51e423e68f93 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=4610c1cd-44ef-4d8a-a7f6-75c1ff5fabf0 host_user_id=52418e17-19df-4ae9-a8ea-3d799ff134e7 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a8ef981c-a5ef-4d67-99c0-5b86ad31d335 host_user_id=f54aa275-ce03-4e56-9b4f-51e423e68f93 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=e494fd89-e82e-43bb-aae2-0fa40bfcb4d0 host_user_id=0ce2ea22-6ca2-4489-a80a-936270793a3a event_version=1
--- PASS: TestLeaveEventRejectsEndedEvent (0.06s)
=== CONT TestLeaveEventSuccessPathBeforeStart
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d59df611-8624-46d1-a476-c73b1d844aff host_user_id=868150cf-7777-4ee6-a59e-5f2e61aad2fa event_version=1
--- PASS: TestGetEventDetailReturnsRoutePoints (0.06s)
=== CONT TestLeaveEventRejectsPendingJoinRequester
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=26d0fdc4-75a5-47d9-ab2c-a112d5055410 host_user_id=f54aa275-ce03-4e56-9b4f-51e423e68f93 event_version=1
--- PASS: TestGetEventDetailReturnsHostOnlyManagementLists (0.27s)
=== CONT TestGetEventDetailReadsPrivateEventForAcceptedInvitee
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=d59df611-8624-46d1-a476-c73b1d844aff user_id=d7e8b79f-7f6c-452d-bafb-537b6d8179b5 host_user_id=868150cf-7777-4ee6-a59e-5f2e61aad2fa join_request_id=b9a8638c-f4d8-465b-8326-a87a6e55e8c8 join_request_status=PENDING
--- PASS: TestRequestJoinSuccessPath (0.31s)
=== CONT TestJoinEventRejectsNonExistentEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2c2950f0-9784-419c-8682-eaba6aabc4d3 host_user_id=309ecc84-3855-42ea-bcd7-2f2e9a431347 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=21de759f-b695-475b-8bb7-dce9e39344b9 host_user_id=41e568a0-b99c-4f13-bad5-7480918db648 event_version=1
--- PASS: TestLeaveEventRejectsHost (0.11s)
=== CONT TestJoinEventRejectsHostJoiningOwnEvent
--- PASS: TestJoinEventRejectsNonExistentEvent (0.02s)
=== CONT TestGetEventDetailReportsViewerParticipationStatuses
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=21de759f-b695-475b-8bb7-dce9e39344b9 user_id=15dd5fdb-e433-4674-85b7-728f0763b29a host_user_id=41e568a0-b99c-4f13-bad5-7480918db648 join_request_id=58ad0b3d-9f6d-42c0-aa3c-60d34434e29a join_request_status=PENDING
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c3c97984-76ec-4d65-b468-acf62495e489 host_user_id=7b418deb-7e3f-4b37-b601-bb57f64e0995 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=250576f3-43af-45b6-9a6c-c86c9589b9db host_user_id=532f16dc-0e68-449e-b48f-330526c5cfad event_version=1
--- PASS: TestLeaveEventRejectsPendingJoinRequester (0.08s)
=== CONT TestGetEventDetailReadsPrivateEventForHost
=== CONT TestAcceptInvitationCreatesParticipationAndAllowsPrivateDetail
--- PASS: TestParticipantRatingUpdatesParticipantScoreAndHostContext (0.37s)
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a25d3338-d1a0-4217-948d-097abfeab6dc host_user_id=7c852227-6807-4436-a32e-624dff66806e event_version=1
--- PASS: TestJoinEventRejectsHostJoiningOwnEvent (0.04s)
=== CONT TestGetEventDetailReadsPrivateEventForApprovedParticipant
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=6ebc77f7-fd8a-4751-944a-e3c8319c755f participation_id=be3f62fd-e595-40f9-a20b-64e1a9f8e6f4 event_id=250576f3-43af-45b6-9a6c-c86c9589b9db participant_user_id=a599cb61-4fe6-4dc1-9747-d9b18e4b8475 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=250576f3-43af-45b6-9a6c-c86c9589b9db user_id=a599cb61-4fe6-4dc1-9747-d9b18e4b8475 participation_id=be3f62fd-e595-40f9-a20b-64e1a9f8e6f4 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestGetEventDetailReadsPrivateEventForAcceptedInvitee (0.08s)
=== CONT TestCreateInvitationsCreatesValidAndReportsInvalidAndFailed
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d25e13d6-de59-48af-ae48-4d2f10bbffe0 host_user_id=cc537849-786c-4f95-b7d3-64c22ee14cc1 event_version=1
2026/05/16 14:43:04 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=be3f62fd-e595-40f9-a20b-64e1a9f8e6f4
--- PASS: TestDiscoverEventsSearchMatchesTitleDescriptionAndTags (0.41s)
=== CONT TestGetEventDetailRejectsPrivateEventForUnrelatedUser
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=478f490c-2e5d-4b18-aac5-da1508f28f9e host_user_id=6ff3c200-01b0-488c-b6c1-00ff7f7b2762 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=e67ad43d-7992-4232-b555-e27036d5b387 host_user_id=cec2a0db-cd35-498b-b4b7-6781e5049729 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2821c0ca-21e1-4ac4-9628-27a8e0ad4101 host_user_id=0bbabbac-933e-485e-951d-23110561957e event_version=1
--- PASS: TestEventRatingUpdatesHostScoreAndEventReadModels (0.42s)
=== CONT TestGetEventDetailReadsProtectedEventForAnyAuthenticatedUser
--- PASS: TestGetEventDetailReadsPrivateEventForHost (0.05s)
=== CONT TestPublicEventCommentsListTopLevelAndRepliesSeparately
--- PASS: TestLeaveEventSuccessPathBeforeStart (0.15s)
=== CONT TestGetEventDetailReadsPublicEventForAuthenticatedUser
--- PASS: TestGetEventDetailReadsPrivateEventForApprovedParticipant (0.05s)
=== CONT TestDiscoverEventsIncludesRouteWhenAnyRoutePointFallsWithinRadius
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=377f7ccf-0df5-4fac-afb8-f1ad140f6571 host_user_id=a2eb224c-aa5e-4884-8ba4-957b885fbba7 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=63b37c1b-9920-45c3-98ba-db2b1fec2e32 host_user_id=7cab9550-83e3-48a5-a876-025290c41281 event_version=1
--- PASS: TestGetEventDetailRejectsPrivateEventForUnrelatedUser (0.04s)
=== CONT TestListReceivedInvitationsReturnsCurrentPendingOnly
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestCreateInvitationsCreatesValidAndReportsInvalidAndFailed (0.07s)
=== CONT TestCreateRouteEventSuccessPath
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a00141d5-2a30-4f57-b97b-07585c95d0b1 host_user_id=f7bd0903-04c0-4d7a-a9c3-b202d6ab2d0f event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=aebb1ce1-2d71-4539-929d-7a09863bbcd3 host_user_id=0f73f261-015f-420e-a55a-e3edfdb892bf event_version=1
--- PASS: TestGetEventDetailReportsViewerParticipationStatuses (0.13s)
=== CONT TestJoinEventAllowsRejoinAfterLeavingBeforeStart
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=fdf72d8b-9046-4561-a1e5-255bb3e02556 host_user_id=eec835ff-713b-492f-8128-5adc2a4feb16 event_version=1
--- PASS: TestGetEventDetailReadsProtectedEventForAnyAuthenticatedUser (0.05s)
=== CONT TestCreateEventRejectsDuplicateTitleForSameHost
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=e754f769-3cc0-49cf-9bd6-40e151b78fc7 participation_id=84e66bf2-0bfa-4bff-8f77-09f7181989a7 event_id=e67ad43d-7992-4232-b555-e27036d5b387 participant_user_id=e2696c3b-6076-4ac6-9572-f76648c232f7 ticket_status=ACTIVE
--- PASS: TestDiscoverEventsIncludesRouteWhenAnyRoutePointFallsWithinRadius (0.05s)
=== CONT TestCreateEventAllowsSameTitleForDifferentHosts
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO invitation accepted operation=invitation.accept invitation_id=dbe819f1-0047-40d7-991b-d623122b6338 event_id=e67ad43d-7992-4232-b555-e27036d5b387 user_id=e2696c3b-6076-4ac6-9572-f76648c232f7 participation_id=84e66bf2-0bfa-4bff-8f77-09f7181989a7 participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d67f7905-92d1-4748-972a-079b9c38ddf9 host_user_id=42e95268-4c41-410e-a5cc-71cf0be208dd event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c21297ca-a9fc-4586-a3d4-5d24940b7d05 host_user_id=e1a18657-afbc-4746-8148-9e3768b8ca73 event_version=1
--- PASS: TestCreateRouteEventSuccessPath (0.03s)
=== CONT TestJoinEventRejectsDuplicate
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=b67d5196-5377-4c1e-825c-6c13d1b05123 host_user_id=26a9b6e8-da35-45c9-a303-73ec38e6d3c9 event_version=1
--- PASS: TestAcceptInvitationCreatesParticipationAndAllowsPrivateDetail (0.12s)
=== CONT TestCreateEventValidationInvalidPrivacyLevel
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=02bdc1b8-d861-49e6-bf8d-9b7e6138ddc2 host_user_id=43db9ad5-8fdc-4490-b840-6d91affe2d8b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ee562a00-d805-4a4a-8d93-82aa96427004 host_user_id=26a9b6e8-da35-45c9-a303-73ec38e6d3c9 event_version=1
--- PASS: TestGetEventDetailReadsPublicEventForAuthenticatedUser (0.07s)
=== CONT TestDiscoverEventsReflectsFavoriteStateForCurrentUser
2026/05/16 14:43:04 ERROR event create failed before version snapshot operation=event.create.version_snapshot host_user_id=43db9ad5-8fdc-4490-b840-6d91affe2d8b error="event_title_already_exists: The host already has an event with this title."
--- PASS: TestCreateEventRejectsDuplicateTitleForSameHost (0.03s)
=== CONT TestCreateEventValidationTooManyTags
--- PASS: TestPublicEventCommentsListTopLevelAndRepliesSeparately (0.08s)
=== CONT TestAuthRequestPasswordResetOTPStoresChallengeForExistingUser
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c0b18935-34bc-42f0-b72a-da5d63cf6546 host_user_id=84bd02c0-e711-407e-bf00-1d843f780558 event_version=1
--- PASS: TestCreateEventValidationInvalidPrivacyLevel (0.02s)
=== CONT TestJoinEventSuccessPath
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=15b1b123-1c48-4176-9a6a-76e5c0f8ccd5 participation_id=e7babe43-5116-4ec4-849f-78dd258b362d event_id=c0b18935-34bc-42f0-b72a-da5d63cf6546 participant_user_id=873da6ae-165e-4710-83d1-dcda5f90b175 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=c0b18935-34bc-42f0-b72a-da5d63cf6546 user_id=873da6ae-165e-4710-83d1-dcda5f90b175 participation_id=e7babe43-5116-4ec4-849f-78dd258b362d participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestListReceivedInvitationsReturnsCurrentPendingOnly (0.06s)
=== CONT TestListCategoriesReturnsSeedData
--- PASS: TestListCategoriesReturnsSeedData (0.00s)
=== CONT TestDiscoverEventsSortsByDistance
2026/05/16 14:43:04 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=e7babe43-5116-4ec4-849f-78dd258b362d
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=34df04c9-4f0b-4cc3-a6fb-31b37d499e44 host_user_id=563b1d25-0404-4a7a-8a15-4d030c51309f event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=15b1b123-1c48-4176-9a6a-76e5c0f8ccd5 participation_id=e7babe43-5116-4ec4-849f-78dd258b362d event_id=c0b18935-34bc-42f0-b72a-da5d63cf6546 participant_user_id=873da6ae-165e-4710-83d1-dcda5f90b175 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=c0b18935-34bc-42f0-b72a-da5d63cf6546 user_id=873da6ae-165e-4710-83d1-dcda5f90b175 participation_id=e7babe43-5116-4ec4-849f-78dd258b362d participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestCreateEventValidationTooManyTags (0.02s)
=== CONT TestAuthVerifyRegistrationOTPPersistsUserProfileAndRefreshToken
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=6322ed58-1c2c-4114-a2c9-69d8ba1e4646 host_user_id=e39ddca0-79d1-4c4d-bc27-3df13b9d6c76 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ba81419c-3bd9-4304-9521-727ffd4ad59c host_user_id=0087be31-a000-494f-b6d6-3cc8d5a4e1d8 event_version=1
--- PASS: TestCreateEventAllowsSameTitleForDifferentHosts (0.05s)
=== CONT TestJoinEventRejectsRejoinAfterLeavingStartedEvent
--- PASS: TestJoinEventAllowsRejoinAfterLeavingBeforeStart (0.08s)
=== CONT TestCreateEventValidationEmptyTitle
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a31527b6-6c87-4f30-b029-5416a310043a host_user_id=0d2a8c50-c1bf-44d4-a41c-04fe418bed2d event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=d7b8020b-0baf-48af-9233-9c694f53d5a6 participation_id=2febaa47-b351-40ae-873a-9e453e62fd4c event_id=6322ed58-1c2c-4114-a2c9-69d8ba1e4646 participant_user_id=de5c90ad-e45a-4e9d-b46d-2fd43406bbf0 ticket_status=ACTIVE
--- PASS: TestAuthRequestPasswordResetOTPStoresChallengeForExistingUser (0.05s)
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=6322ed58-1c2c-4114-a2c9-69d8ba1e4646 user_id=de5c90ad-e45a-4e9d-b46d-2fd43406bbf0 participation_id=2febaa47-b351-40ae-873a-9e453e62fd4c participation_status=APPROVED accepted_event_version=1 ticket_created=true
=== CONT TestPrivateEventCommentsRejectedForVisibleHost
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=67a3cd2d-898b-42f2-8b7e-549aa85ce0e4 host_user_id=3e5d66f6-3401-462f-b2c0-c562fc3ad2d5 event_version=1
--- PASS: TestCreateEventValidationEmptyTitle (0.01s)
=== CONT TestRequestJoinRejectsNonExistentEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=4fcd8a74-675f-413c-8732-a9c430cf1fb9 host_user_id=0d2a8c50-c1bf-44d4-a41c-04fe418bed2d event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=95ef14b4-17da-4d08-835d-e8a0d3640a4e host_user_id=f4f021a4-7a97-4b93-b343-f2c74554efa2 event_version=1
--- PASS: TestJoinEventRejectsDuplicate (0.08s)
=== CONT TestFavoriteLocationCRUDOrdersAlphabetically
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=70bd5eda-c74c-41ec-b381-bbc521e3c793 host_user_id=f4f021a4-7a97-4b93-b343-f2c74554efa2 event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=f881b45e-1b97-4e69-b2f7-ab8a523c801c participation_id=cfe7eed0-44b3-4c42-a3c9-067c64226dc7 event_id=67a3cd2d-898b-42f2-8b7e-549aa85ce0e4 participant_user_id=0869481a-91f0-4636-b7e1-f6684e9f5546 ticket_status=ACTIVE
--- PASS: TestRequestJoinRejectsNonExistentEvent (0.02s)
=== CONT TestDiscoverEventsSortsRouteByFirstPointWhenUsingDistance
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=fac7b7f2-2a48-4386-8a91-d25eafaa9c53 participation_id=13bb76f3-22d7-4767-9241-e715b9db6757 event_id=f1209c07-4308-4dc6-9522-976c1a29a133 participant_user_id=43a11844-f287-4a65-90dc-aca8f7a91e72 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=67a3cd2d-898b-42f2-8b7e-549aa85ce0e4 user_id=0869481a-91f0-4636-b7e1-f6684e9f5546 participation_id=cfe7eed0-44b3-4c42-a3c9-067c64226dc7 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestJoinEventSuccessPath (0.07s)
=== CONT TestDiscoverEventsAuthedMissingGenderSeesGenderRestrictedEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=e8bd20dc-a163-45d4-9a66-d8c6f33e601c host_user_id=0003db84-0c7c-4157-9373-ba25ef5610ed event_version=1
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=f1209c07-4308-4dc6-9522-976c1a29a133 user_id=43a11844-f287-4a65-90dc-aca8f7a91e72 participation_id=13bb76f3-22d7-4767-9241-e715b9db6757 participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c7386ab4-6b83-4d5e-a196-0095877b7490 host_user_id=f4f021a4-7a97-4b93-b343-f2c74554efa2 event_version=1
--- PASS: TestPrivateEventCommentsRejectedForVisibleHost (0.03s)
=== CONT TestFavoriteLocationCreateRejectsFourthLocation
2026/05/16 14:43:04 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=13bb76f3-22d7-4767-9241-e715b9db6757
--- PASS: TestAuthVerifyRegistrationOTPPersistsUserProfileAndRefreshToken (0.09s)
=== CONT TestRequestJoinReflectsPendingStatusInProtectedEventDetail
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=5191c26a-db3f-4ded-9889-8078e22acbd0 host_user_id=a83cd64e-ff10-476c-81a2-4912d9ae2a79 event_version=1
--- PASS: TestJoinEventRejectsRejoinAfterLeavingStartedEvent (0.09s)
=== CONT TestDiscoverEventsAnonymousHidesAgeRestrictedEvents
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3093d916-d2f0-476d-9c8f-ef36b5eab1ec host_user_id=8ae99c1c-8dc4-4b06-88fc-2559617ad176 event_version=1
--- PASS: TestFavoriteLocationCRUDOrdersAlphabetically (0.06s)
=== CONT TestDiscoverEventsAuthedMissingBirthDateSeesAgeRestrictedEvent
--- PASS: TestDiscoverEventsAuthedMissingGenderSeesGenderRestrictedEvent (0.05s)
=== CONT TestRequestJoinReactivatesRejectedRequestAfterCooldown
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=42eaa54b-a330-474a-ae14-6f0dcb857229 host_user_id=a83cd64e-ff10-476c-81a2-4912d9ae2a79 event_version=1
--- PASS: TestDiscoverEventsReflectsFavoriteStateForCurrentUser (0.14s)
=== CONT TestRejectJoinRequestRejectsNonHost
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f2629bb0-5123-4d4d-b2ee-3e21adb278be host_user_id=ae913eaf-c6a3-4255-9443-6bf68a497b7d event_version=1
--- PASS: TestFavoriteLocationCreateRejectsFourthLocation (0.08s)
=== CONT TestDiscoverEventsAnonymousHidesGenderRestrictedEvents
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=87c860b9-8e0e-4306-a80f-03c70ac7e8d8 host_user_id=8ae13851-4910-4733-83ee-41a926173a06 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=255b926b-815e-4369-8e87-11b5ee36fdce host_user_id=ae913eaf-c6a3-4255-9443-6bf68a497b7d event_version=1
--- PASS: TestDiscoverEventsSortsByDistance (0.15s)
=== CONT TestRequestJoinRejectsReapplyAfterLeavingStartedEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=92ab2094-1db6-4a85-92d8-8f5ed0f0f0a3 host_user_id=671a7e95-769e-407d-a3bd-fadb77aea04a event_version=1
--- PASS: TestDiscoverEventsAnonymousHidesAgeRestrictedEvents (0.06s)
=== CONT TestApproveJoinRequestRejectsWhenCapacityIsFull
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3d993596-a56f-4097-9df8-b0728039f002 host_user_id=f303e580-806a-48ac-8d98-19fc87169eb0 event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=87c860b9-8e0e-4306-a80f-03c70ac7e8d8 user_id=55c180b0-b9a6-41c2-a8a9-cf387b4e1ee1 host_user_id=8ae13851-4910-4733-83ee-41a926173a06 join_request_id=9f76dcb7-979e-4ae4-ba51-717b3c54f0ab join_request_status=PENDING
--- PASS: TestDiscoverEventsAuthedMissingBirthDateSeesAgeRestrictedEvent (0.05s)
=== CONT TestApproveJoinRequestSuccessPath
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f314f80a-a5cc-4f27-b986-14af5f843707 host_user_id=a649aadc-5774-4ac1-aa89-5df9a352ba53 event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=92ab2094-1db6-4a85-92d8-8f5ed0f0f0a3 user_id=78e20506-1c61-435e-b89e-b7cc1d5a8f0d host_user_id=671a7e95-769e-407d-a3bd-fadb77aea04a join_request_id=97a276ee-393b-4b7f-ae5c-e453dbb20bd9 join_request_status=PENDING
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=08b028f9-1ec0-48ae-9797-e6d6dde6827b host_user_id=a649aadc-5774-4ac1-aa89-5df9a352ba53 event_version=1
--- PASS: TestRequestJoinReflectsPendingStatusInProtectedEventDetail (0.09s)
=== CONT TestCancelEventForbiddenForNonHost
--- PASS: TestDiscoverEventsAnonymousHidesGenderRestrictedEvents (0.04s)
=== CONT TestRequestJoinRejectsDuplicate
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f9dd9601-c2a4-427b-9e39-0e5e10fcf85e host_user_id=5dfc69f2-f013-470d-854a-e28eab0a1bb8 event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=5c160ea9-afeb-4aeb-b588-f0202b4c3d02 user_id=584288b6-7976-4324-a07a-4c17e0184648 host_user_id=ae08937c-9b7a-4687-9b24-3be567cc673f join_request_id=f12bf14a-5351-42bb-aae2-940a1a0f3c55 join_request_status=PENDING
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=5c160ea9-afeb-4aeb-b588-f0202b4c3d02 join_request_id=f12bf14a-5351-42bb-aae2-940a1a0f3c55 host_user_id=ae08937c-9b7a-4687-9b24-3be567cc673f participation_id=f9905012-9732-4f8e-849d-7b4a54a15cf0 participant_user_id=584288b6-7976-4324-a07a-4c17e0184648 ticket_status=ACTIVE
--- PASS: TestDiscoverEventsSortsRouteByFirstPointWhenUsingDistance (0.14s)
=== CONT TestTransitionEventStatuses_RecentlyUpdatedOldEventStaysActive
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=2caa6bf7-9319-4637-90f4-8379eaec7be9 participation_id=f9905012-9732-4f8e-849d-7b4a54a15cf0 event_id=5c160ea9-afeb-4aeb-b588-f0202b4c3d02 participant_user_id=584288b6-7976-4324-a07a-4c17e0184648 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO join request approved operation=join_request.approve event_id=5c160ea9-afeb-4aeb-b588-f0202b4c3d02 join_request_id=f12bf14a-5351-42bb-aae2-940a1a0f3c55 host_user_id=ae08937c-9b7a-4687-9b24-3be567cc673f participation_id=f9905012-9732-4f8e-849d-7b4a54a15cf0 participant_user_id=584288b6-7976-4324-a07a-4c17e0184648 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=92ab2094-1db6-4a85-92d8-8f5ed0f0f0a3 user_id=78e20506-1c61-435e-b89e-b7cc1d5a8f0d host_user_id=671a7e95-769e-407d-a3bd-fadb77aea04a join_request_id=97a276ee-393b-4b7f-ae5c-e453dbb20bd9 join_request_status=PENDING
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event join request approved operation=event.join_request.approve event_id=5c160ea9-afeb-4aeb-b588-f0202b4c3d02 host_user_id=ae08937c-9b7a-4687-9b24-3be567cc673f join_request_id=f12bf14a-5351-42bb-aae2-940a1a0f3c55 participation_id=f9905012-9732-4f8e-849d-7b4a54a15cf0 participant_user_id=584288b6-7976-4324-a07a-4c17e0184648 participation_status=APPROVED accepted_event_version=1
--- PASS: TestRequestJoinReactivatesRejectedRequestAfterCooldown (0.09s)
=== CONT TestRequestJoinRejectsHostRequestingOwnEvent
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=f9dd9601-c2a4-427b-9e39-0e5e10fcf85e user_id=28d37933-3ecb-4e72-b58b-8c1170448255 host_user_id=5dfc69f2-f013-470d-854a-e28eab0a1bb8 join_request_id=eb11d385-481e-4dcb-b15b-77b5474332ec join_request_status=PENDING
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 host_user_id=63a50ec8-1a70-4c29-a8e7-71cb8629216e event_version=1
2026/05/16 14:43:04 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=f9905012-9732-4f8e-849d-7b4a54a15cf0
--- PASS: TestRejectJoinRequestRejectsNonHost (0.09s)
=== CONT TestCancelEventReturnsConflictForNonActiveEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=79068b38-e0b8-48f5-98cb-2926a9933b35 host_user_id=b3b207fe-104a-4ed9-b6a5-d73e5ec5dd96 event_version=1
--- PASS: TestRequestJoinRejectsReapplyAfterLeavingStartedEvent (0.07s)
=== CONT TestCompleteEventSuccessPath
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=7bb39325-912b-4578-8f30-e0c316dd8572 host_user_id=b727a77a-81d4-4077-9b8d-fd3b3e975a2d event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 user_id=8e87631b-82c1-444b-9b1f-b5e1bcd643d7 host_user_id=63a50ec8-1a70-4c29-a8e7-71cb8629216e join_request_id=d5ee421e-1d72-4f99-a302-82c6043dfce0 join_request_status=PENDING
--- PASS: TestCancelEventForbiddenForNonHost (0.04s)
=== CONT TestDeclineInvitationCreatesCooldownAndNoParticipation
--- PASS: TestTransitionEventStatuses_RecentlyUpdatedOldEventStaysActive (0.02s)
=== CONT TestTransitionEventStatuses_VeryOldEventAutoCompletes
2026/05/16 14:43:04 ERROR join request approval failed operation=join_request.approve event_id=79068b38-e0b8-48f5-98cb-2926a9933b35 join_request_id=3688c99c-0abe-48a5-94ad-cbd7b8ccdfd5 host_user_id=b3b207fe-104a-4ed9-b6a5-d73e5ec5dd96 error="capacity_exceeded: This event has reached its maximum capacity."
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f8dac0db-ebde-478b-9531-78adeed05e6d host_user_id=12666669-867c-4cc0-90a3-c023175fbb94 event_version=1
--- PASS: TestApproveJoinRequestRejectsWhenCapacityIsFull (0.07s)
=== CONT TestGetMyUpcomingEventsReturnsApprovedActiveEvents
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=308acb0b-17e2-4be3-91c9-2206ccb72b82 host_user_id=689efe3d-7b48-477b-80c6-407c69d42f71 event_version=1
2026/05/16 14:43:04 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 join_request_id=d5ee421e-1d72-4f99-a302-82c6043dfce0 host_user_id=63a50ec8-1a70-4c29-a8e7-71cb8629216e participation_id=6a562965-70be-4ad0-a6a7-3d72a123ebfb participant_user_id=8e87631b-82c1-444b-9b1f-b5e1bcd643d7 ticket_status=ACTIVE
--- PASS: TestRequestJoinRejectsHostRequestingOwnEvent (0.02s)
=== CONT TestGetMyUpcomingEventsExcludesCanceledEvent
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=ed2c1dff-5906-4dc6-ae7b-eab521bd37d5 participation_id=6a562965-70be-4ad0-a6a7-3d72a123ebfb event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 participant_user_id=8e87631b-82c1-444b-9b1f-b5e1bcd643d7 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO join request approved operation=join_request.approve event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 join_request_id=d5ee421e-1d72-4f99-a302-82c6043dfce0 host_user_id=63a50ec8-1a70-4c29-a8e7-71cb8629216e participation_id=6a562965-70be-4ad0-a6a7-3d72a123ebfb participant_user_id=8e87631b-82c1-444b-9b1f-b5e1bcd643d7 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=25b7b624-d89c-4c3c-a048-a54e73603208 host_user_id=63b469d4-08c5-4f26-b30a-481f136b75ed event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=f8dac0db-ebde-478b-9531-78adeed05e6d user_id=7eef63d2-61ae-41d1-a120-41ee2272c16e host_user_id=12666669-867c-4cc0-90a3-c023175fbb94 join_request_id=dfcf7c8f-cc35-49b2-a182-3b0bd70bcd46 join_request_status=PENDING
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event join request approved operation=event.join_request.approve event_id=e99bd625-11d4-4996-a861-22fe9fe28a13 host_user_id=63a50ec8-1a70-4c29-a8e7-71cb8629216e join_request_id=d5ee421e-1d72-4f99-a302-82c6043dfce0 participation_id=6a562965-70be-4ad0-a6a7-3d72a123ebfb participant_user_id=8e87631b-82c1-444b-9b1f-b5e1bcd643d7 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=6d139031-4db5-49aa-998a-750055d1f388 host_user_id=a8c7bf8a-5976-4255-8699-1e03cc71d37f event_version=1
=== CONT TestTransitionEventStatuses_StartedToInProgress
--- PASS: TestRequestJoinRejectsDuplicate (0.06s)
--- PASS: TestTransitionEventStatuses_VeryOldEventAutoCompletes (0.02s)
=== CONT TestGetEventDetailShowsCanceledParticipationStatus
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=25b7b624-d89c-4c3c-a048-a54e73603208
2026/05/16 14:43:04 INFO event tickets expired operation=ticket.expire_for_event event_id=6d139031-4db5-49aa-998a-750055d1f388
=== CONT TestCancelEventAppearsInHostProfile
--- PASS: TestCompleteEventSuccessPath (0.04s)
--- PASS: TestCancelEventReturnsConflictForNonActiveEvent (0.05s)
=== CONT TestAudienceAttributes_FilterByFamilyOriented
--- PASS: TestTransitionEventStatuses_StartedToInProgress (0.02s)
=== CONT TestAudienceAttributes_FilterByChildFriendly
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d24204c2-01c1-47a7-ab06-7829737e3350 host_user_id=4bb32389-5c03-47e6-a529-ea74ea221202 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=dd5a1a1b-2f4e-41b5-bd4c-137ec0e49c4d host_user_id=757536cd-81f3-4d7c-be8b-85378e813aed event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=15afc5b8-a9c3-4978-9f27-751d9d11a540 participation_id=500bccff-3e04-42e7-aab9-ee9f38134d5a event_id=dd5a1a1b-2f4e-41b5-bd4c-137ec0e49c4d participant_user_id=43b303b8-b235-4e20-b1fa-32887561c3b2 ticket_status=ACTIVE
--- PASS: TestApproveJoinRequestSuccessPath (0.11s)
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=dd5a1a1b-2f4e-41b5-bd4c-137ec0e49c4d user_id=43b303b8-b235-4e20-b1fa-32887561c3b2 participation_id=500bccff-3e04-42e7-aab9-ee9f38134d5a participation_status=APPROVED accepted_event_version=1 ticket_created=true
=== CONT TestRequestJoinRejectsCanceledEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=5ffdf918-0478-4510-9461-05fb6b94d8ad host_user_id=1101200d-ba71-4a1c-b0a7-ce770ef52b77 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=87363ee4-8234-4170-a335-09a5e4a352fe host_user_id=df19aa3f-116a-442b-9569-b4534ed334c4 event_version=1
--- PASS: TestGetMyUpcomingEventsReturnsApprovedActiveEvents (0.05s)
=== CONT TestAdminCreateAndCancelParticipationMutationCreatesAndCancelsTicket
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3936a3ba-6748-4310-881d-61b08311c20d host_user_id=4ebdf929-3ff3-4e2a-be2b-27a87997f6c5 event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=b6260d99-9787-4cad-ba1b-a93bc88f97c4 participation_id=c013b539-00c8-4ba1-b52a-fe0b1df7586a event_id=87363ee4-8234-4170-a335-09a5e4a352fe participant_user_id=95a737e7-10b4-4cf2-a783-396e4d75453e ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=7716684e-2db5-4191-be6b-3f80b792eceb host_user_id=036efe70-8cda-43b3-8de1-3a62ebf33497 event_version=1
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=87363ee4-8234-4170-a335-09a5e4a352fe user_id=95a737e7-10b4-4cf2-a783-396e4d75453e participation_id=c013b539-00c8-4ba1-b52a-fe0b1df7586a participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=5ffdf918-0478-4510-9461-05fb6b94d8ad
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2671248e-9e37-4554-829c-fa2b923da277 host_user_id=c2fb519d-3454-4fd7-9455-1f7d54e56daa event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=bad3f6ee-d5d8-4767-8d05-a51c56229f73 host_user_id=036efe70-8cda-43b3-8de1-3a62ebf33497 event_version=1
=== CONT TestAdminEventsParticipationsAndTicketsFiltering
--- PASS: TestCancelEventAppearsInHostProfile (0.05s)
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=8b995b99-cf2c-4635-a5f8-dc854700f4e2 participation_id=9fdd9596-e832-4952-8ddd-63b789456062 event_id=3936a3ba-6748-4310-881d-61b08311c20d participant_user_id=298760a0-cac9-4538-afa9-32127278df02 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=3936a3ba-6748-4310-881d-61b08311c20d user_id=298760a0-cac9-4538-afa9-32127278df02 participation_id=9fdd9596-e832-4952-8ddd-63b789456062 participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=b1f3704a-ad5c-4f37-8112-01db6173a1f1 host_user_id=c2fb519d-3454-4fd7-9455-1f7d54e56daa event_version=1
--- PASS: TestAudienceAttributes_FilterByFamilyOriented (0.05s)
=== CONT TestCancelEventSuccessPath
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=87363ee4-8234-4170-a335-09a5e4a352fe
--- PASS: TestAudienceAttributes_FilterByChildFriendly (0.05s)
=== CONT TestIntegrationJoinEventRejectsUnderageUser
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestGetMyUpcomingEventsExcludesCanceledEvent (0.09s)
=== CONT TestDiscoverEventsAuthedGenderMatchSeesAndMismatchHides
=== CONT TestDiscoverEventsMinimumAgeFilterReturnsOnlyEventsAtOrAboveTheRequestedThreshold
--- PASS: TestDeclineInvitationCreatesCooldownAndNoParticipation (0.10s)
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=3936a3ba-6748-4310-881d-61b08311c20d
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=91f61232-9b85-4208-85be-048abefaa4ed host_user_id=45331957-1469-485e-b050-3ec881973306 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8ff60708-9e06-4043-bbb8-fc520f8a4e60 host_user_id=e5f67ce4-ea68-4605-95c2-2bbefcc391c0 event_version=1
--- PASS: TestGetEventDetailShowsCanceledParticipationStatus (0.09s)
=== CONT TestJoinEventRejectsProtectedEvent
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=91f61232-9b85-4208-85be-048abefaa4ed
--- PASS: TestRequestJoinRejectsCanceledEvent (0.06s)
=== CONT TestDiscoverEventsHostScoreReflectsHostRatingCountAndScore
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=958ed150-e77e-43a4-868d-42beeb1d77dc host_user_id=e61c5f0a-05e3-46ee-b3b6-01f2a308fd04 event_version=1
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=958ed150-e77e-43a4-868d-42beeb1d77dc
--- PASS: TestCancelEventSuccessPath (0.03s)
=== CONT TestDiscoverEventsReturnsOnlyNearbyActivePublicAndProtectedEvents
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=79a333f5-7d24-4935-8104-cbc5e7d38dc6 participation_id=125a94fd-8263-443e-8804-03c8e581c542 event_id=8ff60708-9e06-4043-bbb8-fc520f8a4e60 participant_user_id=e3dcd7a3-20ac-471c-a19c-1329cd37ce57 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO admin participation created operation=admin.participations.create admin_user_id=5a05be67-6dd6-4b0d-85eb-e32eb8e71bf1 event_id=8ff60708-9e06-4043-bbb8-fc520f8a4e60 participant_user_id=e3dcd7a3-20ac-471c-a19c-1329cd37ce57 participation_id=125a94fd-8263-443e-8804-03c8e581c542 participation_status=APPROVED ticket_created=true has_reason=false
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a14e26cf-87c8-4a31-9f6c-59cca7e32253 host_user_id=63c84d65-4e7e-4b9c-b6c8-0424dcc1890f event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c44c21be-1812-4ee1-a23a-4f9290f5a3b5 host_user_id=31fb0b87-4786-4bbe-998a-77d459ab7af7 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=b1a2e919-f948-48ec-b716-57d700879244 host_user_id=a65ff40a-4c5d-48c1-90ae-06e3eb2e6a85 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=3974e443-bbda-49d9-885a-f3b4691d07dd host_user_id=9692f236-fe4a-426b-953c-8e52728b5229 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f088e942-9478-4c5c-8bdf-0a3c1e050ae2 host_user_id=31fb0b87-4786-4bbe-998a-77d459ab7af7 event_version=1
2026/05/16 14:43:04 INFO admin list query completed operation=admin.events.list user_id=fa6b7015-74e7-497c-80df-9bdc635b115b result_count=1 limit=5 offset=0 has_next=false query_summary="limit=5 offset=0 q=<nil> host_id=63c84d65-4e7e-4b9c-b6c8-0424dcc1890f category_id=<nil> privacy_level=PROTECTED status=ACTIVE start_from=<nil> start_to=<nil>"
--- PASS: TestIntegrationJoinEventRejectsUnderageUser (0.05s)
=== CONT TestCreateEventValidationEndTimeBeforeStartTime
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=90a1210e-5af4-4130-8aef-0711afa05bc5 host_user_id=a65ff40a-4c5d-48c1-90ae-06e3eb2e6a85 event_version=1
2026/05/16 14:43:04 INFO admin list query completed operation=admin.participations.list user_id=fa6b7015-74e7-497c-80df-9bdc635b115b result_count=1 limit=50 offset=0 has_next=false query_summary="limit=50 offset=0 q=<nil> status=APPROVED event_id=a14e26cf-87c8-4a31-9f6c-59cca7e32253 user_id=493f62a3-2468-4c76-a87b-1fd90725a8de created_from=<nil> created_to=<nil>"
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=db42798a-953f-41f7-95b7-5516431ba995 host_user_id=0d49639e-d449-4601-a9c3-31d7c0484dc1 event_version=1
2026/05/16 14:43:04 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=125a94fd-8263-443e-8804-03c8e581c542
2026/05/16 14:43:04 INFO admin participation canceled operation=admin.participations.cancel admin_user_id=5a05be67-6dd6-4b0d-85eb-e32eb8e71bf1 event_id=8ff60708-9e06-4043-bbb8-fc520f8a4e60 participant_user_id=e3dcd7a3-20ac-471c-a19c-1329cd37ce57 participation_id=125a94fd-8263-443e-8804-03c8e581c542 already_canceled=false has_reason=false
--- PASS: TestJoinEventRejectsProtectedEvent (0.04s)
=== CONT TestCreateEventPersistsInternalHostParticipationWithoutChangingVisibleCounts
2026/05/16 14:43:04 INFO admin list query completed operation=admin.tickets.list user_id=fa6b7015-74e7-497c-80df-9bdc635b115b result_count=1 limit=50 offset=0 has_next=false query_summary="limit=50 offset=0 q=<nil> status=ACTIVE event_id=a14e26cf-87c8-4a31-9f6c-59cca7e32253 user_id=493f62a3-2468-4c76-a87b-1fd90725a8de participation_id=4dfcc0ee-98e1-48cc-825e-a04f459d828e created_from=<nil> created_to=<nil>"
--- PASS: TestDiscoverEventsAuthedGenderMatchSeesAndMismatchHides (0.06s)
=== CONT TestAuthVerifyRegistrationOTPRollsBackOnUsernameConflict
--- PASS: TestAdminEventsParticipationsAndTicketsFiltering (0.08s)
=== CONT TestCreateEventWithoutEndTime
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2450ecd1-f83f-4438-a187-60bde52652b4 host_user_id=a65ff40a-4c5d-48c1-90ae-06e3eb2e6a85 event_version=1
--- PASS: TestCreateEventValidationEndTimeBeforeStartTime (0.01s)
=== CONT TestCreateEventSuccessPath
2026/05/16 14:43:04 INFO admin participation canceled operation=admin.participations.cancel admin_user_id=5a05be67-6dd6-4b0d-85eb-e32eb8e71bf1 event_id=8ff60708-9e06-4043-bbb8-fc520f8a4e60 participant_user_id=e3dcd7a3-20ac-471c-a19c-1329cd37ce57 participation_id=125a94fd-8263-443e-8804-03c8e581c542 already_canceled=true has_reason=false
--- PASS: TestAdminCreateAndCancelParticipationMutationCreatesAndCancelsTicket (0.11s)
=== CONT TestAuthRequestPasswordResetOTPUnknownEmailReturnsSilently
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=1e11b28f-ebb5-4034-b713-d98723b5f3cc host_user_id=1576b6c4-6a37-42e3-88ad-85d564a6c45b event_version=1
--- PASS: TestDiscoverEventsMinimumAgeFilterReturnsOnlyEventsAtOrAboveTheRequestedThreshold (0.07s)
=== CONT TestReviewCommentUpdatesHostScoreAndViewerRating
--- PASS: TestAuthRequestPasswordResetOTPUnknownEmailReturnsSilently (0.00s)
=== CONT TestDiscoverEventsCursorPaginationIsStableAndNonOverlapping
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=55217796-9c6c-44f2-a3eb-5cc1f140234d host_user_id=f36c0fd7-2103-40e0-98cf-3fd8eaa28c27 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=5c263549-32e2-4290-a6eb-2d86282e42ff host_user_id=1576b6c4-6a37-42e3-88ad-85d564a6c45b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ace1b4eb-a9e3-4845-848e-34748278cc80 host_user_id=1576b6c4-6a37-42e3-88ad-85d564a6c45b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=be2d163d-07b3-428c-ad5d-a42eb4c3b885 host_user_id=28301181-2490-4b18-8d4d-543fab596dd8 event_version=1
--- PASS: TestCreateEventWithoutEndTime (0.03s)
=== CONT TestAuthResetPasswordUpdatesStoredHashAndAllowsLoginWithNewPassword
--- PASS: TestCreateEventPersistsInternalHostParticipationWithoutChangingVisibleCounts (0.04s)
=== CONT TestAuthVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=9dbff64c-0923-442b-8a14-0520418cb169 host_user_id=1576b6c4-6a37-42e3-88ad-85d564a6c45b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=eeb8062b-d25d-412f-87f3-c6f3f6fd1fde host_user_id=496521ab-dd73-4740-8684-f62dc87c1c4b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d29c9227-e473-42c4-ab12-371e85858374 host_user_id=f6e9f974-fc2d-416b-afa4-755fabae3091 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=8ee361f6-0311-479e-b6d1-02b789f1cf8b host_user_id=1576b6c4-6a37-42e3-88ad-85d564a6c45b event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=cfca8402-c04a-4e5a-84c5-262ddacab6ac host_user_id=496521ab-dd73-4740-8684-f62dc87c1c4b event_version=1
=== CONT TestListCategoriesResponseShape
--- PASS: TestCreateEventSuccessPath (0.05s)
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=9aea454d-0776-45fe-8cf9-de30a2e28787 host_user_id=920d82c7-8fee-4a4b-ad6b-802060b4ee1d event_version=1
--- PASS: TestListCategoriesResponseShape (0.00s)
=== CONT TestTransitionEventStatuses_StaleEventAutoCompletes
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=61609070-ecce-4bf6-8b4f-d031a8168915 host_user_id=8314f0af-6a6b-44f2-b56e-0d236efd7458 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=23057295-6acd-4634-9d91-40e56158a800 host_user_id=920d82c7-8fee-4a4b-ad6b-802060b4ee1d event_version=1
--- PASS: TestTransitionEventStatuses_StaleEventAutoCompletes (0.02s)
=== CONT TestRequestJoinRejectsDuringCooldownWindow
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=feba513e-4527-4be7-9063-0f5d14486652 host_user_id=920d82c7-8fee-4a4b-ad6b-802060b4ee1d event_version=1
--- PASS: TestAuthVerifyRegistrationOTPRollsBackOnUsernameConflict (0.08s)
=== CONT TestDiscoverEventsAppliesSearchAndFiltersTogether
=== CONT TestTransitionEventStatuses_ExpiredToCompleted
--- PASS: TestDiscoverEventsCursorPaginationIsStableAndNonOverlapping (0.08s)
--- PASS: TestReviewCommentUpdatesHostScoreAndViewerRating (0.09s)
=== CONT TestDiscoverEventsAppliesPrivacyLevelFilter
--- PASS: TestAuthVerifyPasswordResetOTPReturnsResetGrantAndConsumesOTP (0.06s)
=== CONT TestIntegrationRequestJoinRejectsMismatchedGender
--- PASS: TestDiscoverEventsHostScoreReflectsHostRatingCountAndScore (0.15s)
=== CONT TestDiscoverEventsAuthedAdultSeesAgeRestrictedEvent
--- PASS: TestTransitionEventStatuses_ExpiredToCompleted (0.02s)
=== CONT TestGetMyUpcomingEventsIncludesPrivacyLevel
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a4419329-1518-48ac-b2fc-30e0b385cc97 host_user_id=42b48423-aa7e-4a4b-ac67-c10031bcdd9b event_version=1
--- PASS: TestDiscoverEventsReturnsOnlyNearbyActivePublicAndProtectedEvents (0.16s)
=== CONT TestApproveJoinRequestRejectsResolvedRequest
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=a4419329-1518-48ac-b2fc-30e0b385cc97 user_id=6b67d677-7141-41a5-83cf-20abe75262ba host_user_id=42b48423-aa7e-4a4b-ac67-c10031bcdd9b join_request_id=a4baa69b-07f0-42bc-a6f4-0993c61514d9 join_request_status=PENDING
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=d90620fd-2399-4349-b76e-d64c6c1af3d4 host_user_id=d662eebc-2d72-4b34-b6f1-7a990956457e event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=94026d6c-44ca-452d-bc3a-b851caf7678c host_user_id=6173cffb-5b35-4e86-9568-9764a018049e event_version=1
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=a2bfa6aa-9c62-43bd-a333-b2007793866f host_user_id=a9312735-52a6-48e1-88f1-5f7f8f4cbfd2 event_version=1
--- PASS: TestAuthResetPasswordUpdatesStoredHashAndAllowsLoginWithNewPassword (0.12s)
=== CONT TestRejectJoinRequestSuccessPath
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f6d33313-9bf0-425f-96c0-83206c4365ca host_user_id=6173cffb-5b35-4e86-9568-9764a018049e event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=47af071c-d8a2-4d1a-a497-0798845be56c host_user_id=d662eebc-2d72-4b34-b6f1-7a990956457e event_version=1
--- PASS: TestIntegrationRequestJoinRejectsMismatchedGender (0.05s)
=== CONT TestRejectJoinRequestRejectsResolvedRequest
--- PASS: TestDiscoverEventsAppliesPrivacyLevelFilter (0.05s)
=== CONT TestDiscoverEventsAuthedMinorHidesAgeRestrictedEvent
--- PASS: TestRequestJoinRejectsDuringCooldownWindow (0.07s)
=== CONT TestRequestJoinAllowsReapplyAfterApprovedParticipationLeavesBeforeStart
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=587f7c89-a77e-41ac-8f43-daaf99cea10e host_user_id=423130c2-a9af-4669-87ac-33773be128a3 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c3e0383a-eca2-4ba8-ace4-143908e609e1 host_user_id=d662eebc-2d72-4b34-b6f1-7a990956457e event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=1e3140a3-e95d-4eee-ad7a-9530531d546d host_user_id=b10b08d1-bcf0-4673-b2bd-048b7cd23f9c event_version=1
--- PASS: TestDiscoverEventsAuthedAdultSeesAgeRestrictedEvent (0.05s)
=== CONT TestJoinEventRejectsCanceledEvent
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=9bf822b5-79c1-48ee-a270-c7461e85280c host_user_id=d662eebc-2d72-4b34-b6f1-7a990956457e event_version=1
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=4b1602ec-27dd-4bfb-841d-495c91e3e4b8 participation_id=b9a05f11-f86e-4155-9c62-1f990ab90e80 event_id=1e3140a3-e95d-4eee-ad7a-9530531d546d participant_user_id=b4477980-bf6b-40bf-b63d-5bd9ac7ea7a9 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=1e3140a3-e95d-4eee-ad7a-9530531d546d user_id=b4477980-bf6b-40bf-b63d-5bd9ac7ea7a9 participation_id=b9a05f11-f86e-4155-9c62-1f990ab90e80 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestGetMyUpcomingEventsIncludesPrivacyLevel (0.06s)
=== CONT TestEventDetailReturnsVersionDiffUntilParticipantReconfirms
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=308a16bf-fad7-4e4d-8623-6dd3a81ec3c9 host_user_id=d662eebc-2d72-4b34-b6f1-7a990956457e event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 host_user_id=eab6b219-e481-486d-9523-061f5885e701 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=ee6e37ff-7264-400a-bdb1-2758e0e8e304 host_user_id=37bd5e3e-686e-4838-b92f-7e66cb83fce3 event_version=1
--- PASS: TestDiscoverEventsAppliesSearchAndFiltersTogether (0.10s)
=== CONT TestApproveJoinRequestRejectsNonHost
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=dd7e4f62-c149-44ca-9904-761294ba034e host_user_id=3163e8ef-579c-4075-a448-261416c3d6b1 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f606633f-902e-4cb8-be9c-6ef0a2f959a1 host_user_id=c59fcd53-aec8-47e1-8bd4-bbfde8de8146 event_version=1
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 event_version=1
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 user_id=de4df683-8a86-4e59-9e0d-8f89633306f1 host_user_id=eab6b219-e481-486d-9523-061f5885e701 join_request_id=daef67bc-c308-4430-a149-5893cb5b8fd0 join_request_status=PENDING
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=ee6e37ff-7264-400a-bdb1-2758e0e8e304 user_id=fb66a82c-9925-4922-bf61-60cbcbf700f0 host_user_id=37bd5e3e-686e-4838-b92f-7e66cb83fce3 join_request_id=05e75f93-e496-430d-9a0c-3fcaa0cc70e4 join_request_status=PENDING
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f join_request_status=PENDING
2026/05/16 14:43:04 INFO event join request created operation=event.join_request.create event_id=f606633f-902e-4cb8-be9c-6ef0a2f959a1 user_id=7a86020a-2a66-4162-bb58-3f584b9bd6f5 host_user_id=c59fcd53-aec8-47e1-8bd4-bbfde8de8146 join_request_id=1c88e089-0aa5-4deb-a01a-129c3f967b60 join_request_status=PENDING
2026/05/16 14:43:04 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 join_request_id=daef67bc-c308-4430-a149-5893cb5b8fd0 host_user_id=eab6b219-e481-486d-9523-061f5885e701 participation_id=c40651cf-5e3a-45e2-a10e-b3fbb02869ef participant_user_id=de4df683-8a86-4e59-9e0d-8f89633306f1 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=db81da9b-b2c7-4c48-a3e7-bbcaa1c23b7b participation_id=c40651cf-5e3a-45e2-a10e-b3fbb02869ef event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 participant_user_id=de4df683-8a86-4e59-9e0d-8f89633306f1 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO join request approved operation=join_request.approve event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 join_request_id=daef67bc-c308-4430-a149-5893cb5b8fd0 host_user_id=eab6b219-e481-486d-9523-061f5885e701 participation_id=c40651cf-5e3a-45e2-a10e-b3fbb02869ef participant_user_id=de4df683-8a86-4e59-9e0d-8f89633306f1 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=bce309eb-9dbe-4d54-9ee3-b369fdcb7c9e host_user_id=74be2ded-1ac6-4a93-b7e7-ccca1d1abe46 event_version=1
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
--- PASS: TestRejectJoinRequestRejectsResolvedRequest (0.06s)
=== CONT TestCancelEventAppearsInParticipantProfile
2026/05/16 14:43:04 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a host_user_id=aacb5352-de61-4ad0-a6d7-0b05695440c9 event_version=1
2026/05/16 14:43:04 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:04 INFO event join request approved operation=event.join_request.approve event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 host_user_id=eab6b219-e481-486d-9523-061f5885e701 join_request_id=daef67bc-c308-4430-a149-5893cb5b8fd0 participation_id=c40651cf-5e3a-45e2-a10e-b3fbb02869ef participant_user_id=de4df683-8a86-4e59-9e0d-8f89633306f1 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:04 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event tickets canceled operation=ticket.cancel_for_event event_id=bce309eb-9dbe-4d54-9ee3-b369fdcb7c9e
--- PASS: TestJoinEventRejectsCanceledEvent (0.05s)
=== CONT TestRequestJoinImageURLIsVisibleToHostManagementFlows
2026/05/16 14:43:04 ERROR join request approval failed operation=join_request.approve event_id=510864c8-cc5c-4e5d-ab0e-22181a66fc04 join_request_id=daef67bc-c308-4430-a149-5893cb5b8fd0 host_user_id=eab6b219-e481-486d-9523-061f5885e701 error="join_request_state_invalid: Only PENDING join requests can be approved."
--- PASS: TestApproveJoinRequestRejectsResolvedRequest (0.08s)
=== CONT TestDiscoverEventsAnonymousSeesOnlyPublicAndProtected
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=8eb26614-fe92-4396-ac1d-21001574a833 participation_id=1a751e3f-8522-4fca-808b-56c288c5b3b3 event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a participant_user_id=65461622-97a2-49d2-ad51-900e881c6077 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO event participation created operation=event.participation.create event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a user_id=65461622-97a2-49d2-ad51-900e881c6077 participation_id=1a751e3f-8522-4fca-808b-56c288c5b3b3 participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:04 INFO ticket created operation=ticket.create_for_participation ticket_id=f3174eff-523b-47fc-82f6-1a82929b101c participation_id=b5d0568c-e548-4468-b576-42d85d373d1d event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 ticket_status=ACTIVE
2026/05/16 14:43:04 INFO join request approved operation=join_request.approve event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:04 INFO event version snapshot created operation=event.update.version_snapshot event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a host_user_id=aacb5352-de61-4ad0-a6d7-0b05695440c9 from_event_version=1 to_event_version=2 changed_field_count=1 reconfirmation_required=true
--- PASS: TestRejectJoinRequestSuccessPath (0.08s)
=== CONT TestRequestJoinRejectsPublicEvent
2026/05/16 14:43:05 INFO notifications sent operation=notification.send target_user_count=1 created_count=1 idempotent_count=0 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:05 INFO event join request approved operation=event.join_request.approve event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 participation_status=APPROVED accepted_event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=038999f3-0b4e-48fe-b2f7-30e573d47bf9 host_user_id=aac6a4ae-4818-499b-a0fe-1497f182ad60 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=c3188734-a3b7-45bf-8ac5-fe5d1c8ff4fd host_user_id=356076c7-4a93-4d6b-85b2-11af74a2fac9 event_version=1
2026/05/16 14:43:05 INFO event version snapshot created operation=event.update.version_snapshot event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a host_user_id=aacb5352-de61-4ad0-a6d7-0b05695440c9 from_event_version=2 to_event_version=3 changed_field_count=1 reconfirmation_required=false
2026/05/16 14:43:05 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=b5d0568c-e548-4468-b576-42d85d373d1d
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=5442b89a-4116-445d-a5cb-8e6b4d97577b host_user_id=aac6a4ae-4818-499b-a0fe-1497f182ad60 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=889a1725-42e2-4ffc-8efd-1c0990f6987b host_user_id=3c7790cf-0a03-4ab9-83ed-cb151f6a77d1 event_version=1
2026/05/16 14:43:05 INFO event join request created operation=event.join_request.create event_id=c3188734-a3b7-45bf-8ac5-fe5d1c8ff4fd user_id=403d9fe4-fba8-4975-8157-aaafecdf47a1 host_user_id=356076c7-4a93-4d6b-85b2-11af74a2fac9 join_request_id=1e91f6c9-ca5f-4333-9515-8b5b01000cc8 join_request_status=PENDING
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=9e8ace73-c92d-40cb-9a13-147c22cf813b host_user_id=52f56b81-0aee-4699-b00e-3e7948db9fe1 event_version=1
--- PASS: TestDiscoverEventsAnonymousSeesOnlyPublicAndProtected (0.05s)
=== CONT TestCompleteEventReturnsConflictForCanceledOrCompleted
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=e968ff3d-01f0-4d5b-bb7f-eedde744df53 host_user_id=e808bca3-aa4d-45e3-9a9c-a52e9dafe0b0 event_version=1
2026/05/16 14:43:05 ERROR join request approval failed operation=join_request.approve event_id=c3188734-a3b7-45bf-8ac5-fe5d1c8ff4fd join_request_id=1e91f6c9-ca5f-4333-9515-8b5b01000cc8 host_user_id=b4ef4541-2ee3-4402-8e7f-f41a7bbda13e error="join_request_moderation_not_allowed: Only the event host can moderate join requests."
--- PASS: TestRequestJoinRejectsPublicEvent (0.04s)
--- PASS: TestApproveJoinRequestRejectsNonHost (0.08s)
=== CONT TestGetEventDetailAnonymousCannotReadPrivateEvent
=== CONT TestGetMyHostedEventsReturnsCreatedEvents
2026/05/16 14:43:05 INFO event join request created operation=event.join_request.create event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f join_request_status=PENDING
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=b7465488-7a41-4a07-8a32-92529692230a participation_id=43a33cb0-50d9-405d-a169-5db9d62f9f39 event_id=889a1725-42e2-4ffc-8efd-1c0990f6987b participant_user_id=d7162eaa-b354-489b-8ef7-5f4a46c46f3c ticket_status=ACTIVE
=== CONT TestGetEventDetailAnonymousCanReadPublicEvent
2026/05/16 14:43:05 INFO event reconfirmation diff generated operation=event.detail.reconfirmation_diff event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a user_id=65461622-97a2-49d2-ad51-900e881c6077 from_event_version=1 to_event_version=3 diff_change_count=2
--- PASS: TestDiscoverEventsAuthedMinorHidesAgeRestrictedEvent (0.12s)
2026/05/16 14:43:05 INFO event participation created operation=event.participation.create event_id=889a1725-42e2-4ffc-8efd-1c0990f6987b user_id=d7162eaa-b354-489b-8ef7-5f4a46c46f3c participation_id=43a33cb0-50d9-405d-a169-5db9d62f9f39 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestRequestJoinImageURLIsVisibleToHostManagementFlows (0.07s)
=== CONT TestCompleteEventForbiddenForNonHost
2026/05/16 14:43:05 INFO join request approved; creating ticket operation=join_request.approve.ticket_create event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 ticket_status=ACTIVE
2026/05/16 14:43:05 INFO event tickets canceled operation=ticket.cancel_for_event event_id=889a1725-42e2-4ffc-8efd-1c0990f6987b
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=f3174eff-523b-47fc-82f6-1a82929b101c participation_id=b5d0568c-e548-4468-b576-42d85d373d1d event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 ticket_status=ACTIVE
2026/05/16 14:43:05 INFO join request approved operation=join_request.approve event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 participation_status=APPROVED accepted_event_version=1 ticket_service_enabled=true
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=8eb26614-fe92-4396-ac1d-21001574a833 participation_id=1a751e3f-8522-4fca-808b-56c288c5b3b3 event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a participant_user_id=65461622-97a2-49d2-ad51-900e881c6077 ticket_status=ACTIVE
--- PASS: TestCancelEventAppearsInParticipantProfile (0.08s)
=== CONT TestCancelEventPreservesApprovedSnapshotAndSkipsLeavedParticipations
2026/05/16 14:43:05 INFO event participation reconfirmed operation=event.participation.reconfirm event_id=aecb2b88-62c5-4286-8059-b3992eb48e3a user_id=65461622-97a2-49d2-ad51-900e881c6077 participation_id=1a751e3f-8522-4fca-808b-56c288c5b3b3 event_version=3 ticket_created=true
2026/05/16 14:43:05 INFO notifications sent operation=notification.send target_user_count=1 created_count=0 idempotent_count=1 sse_delivery_count=0 push_active_device_count=0 push_sent_count=0 push_failed_count=0 invalid_token_count=0
2026/05/16 14:43:05 INFO event join request approved operation=event.join_request.approve event_id=22f3533b-9025-4b4f-b9f3-5e60147611d3 host_user_id=a3145f8c-1867-4c58-8d8a-1cd2f8252e25 join_request_id=7c214d68-5498-416b-a5ac-94bae2af3f4f participation_id=b5d0568c-e548-4468-b576-42d85d373d1d participant_user_id=7c4c5652-74e1-4bb8-bd0f-d0169e36a900 participation_status=APPROVED accepted_event_version=1
--- PASS: TestRequestJoinAllowsReapplyAfterApprovedParticipationLeavesBeforeStart (0.14s)
=== CONT TestGetMyHostedEventsIncludesPrivacyLevel
--- PASS: TestEventDetailReturnsVersionDiffUntilParticipantReconfirms (0.12s)
=== CONT TestCompleteEventSuccessOpenEnded
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=fc86b32b-3faf-4699-a1eb-313e3146fb28 host_user_id=dd10e289-6661-46c8-a782-c3eead091da0 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=1204d7ab-a78c-4586-9814-d369ce70581c host_user_id=ec0735d3-244f-473b-84d1-6b3e4f9f8c4e event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=662d7a30-0c36-4281-81cc-0d40a02460ac host_user_id=1a05c3f9-7051-41fd-9f1a-81b0428343be event_version=1
--- PASS: TestGetEventDetailAnonymousCannotReadPrivateEvent (0.03s)
=== CONT TestAddAndRemoveFavorite
2026/05/16 14:43:05 INFO event tickets canceled operation=ticket.cancel_for_event event_id=fc86b32b-3faf-4699-a1eb-313e3146fb28
--- PASS: TestGetEventDetailAnonymousCanReadPublicEvent (0.03s)
=== CONT TestGetMyCompletedEventsExcludesLeavedParticipationBeforeStart
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=93661f86-31c3-44fe-901f-317705c70f39 host_user_id=a23620f0-87b0-4747-a733-a06aae0518f1 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2e71f3c9-12ea-4371-a42e-8cc790d2df05 host_user_id=021adb67-2aad-4627-823a-f615ff92c770 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f85a8011-ce19-4b9e-ad56-6be6953b10ab host_user_id=d23a3a1e-e454-420b-962b-0f8f2687a04a event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=f17eb769-2f2a-4c3c-91ec-5ef439bf0c87 host_user_id=59cbf3d3-34b3-487e-be95-88d383b0ca44 event_version=1
--- PASS: TestGetMyHostedEventsIncludesPrivacyLevel (0.03s)
=== CONT TestAudienceAttributes_CreateAndDetail
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=323ae356-dd94-4186-a40a-e9f3dddd9fd0 host_user_id=8729ec84-9a54-4beb-bfbf-4ff258ef8de5 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=00bf6b69-afc0-40d3-aa48-3b55f0227007 host_user_id=dd10e289-6661-46c8-a782-c3eead091da0 event_version=1
=== CONT TestGetMyCompletedEventsIncludesLeavedParticipationAfterStart
--- PASS: TestGetMyHostedEventsReturnsCreatedEvents (0.05s)
--- PASS: TestCompleteEventForbiddenForNonHost (0.05s)
=== CONT TestAudienceAttributes_DefaultsFalse
2026/05/16 14:43:05 INFO event tickets expired operation=ticket.expire_for_event event_id=f85a8011-ce19-4b9e-ad56-6be6953b10ab
--- PASS: TestCompleteEventSuccessOpenEnded (0.03s)
=== CONT TestAuthCheckAvailabilityReturnsTakenForPersistedIdentity
2026/05/16 14:43:05 INFO event tickets expired operation=ticket.expire_for_event event_id=00bf6b69-afc0-40d3-aa48-3b55f0227007
--- PASS: TestCompleteEventReturnsConflictForCanceledOrCompleted (0.07s)
=== CONT TestAdminUsersEndpointAuthorizationAndFiltering
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015 host_user_id=dc13f2c8-9980-4055-a1bf-221f28584361 event_version=1
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=83d66d46-dbe9-4198-88af-77b5ebe03f19 host_user_id=556d9eca-aa40-4281-ac34-f0acbd8cce85 event_version=1
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=f44ba5d2-6404-478f-8de7-2f46e3d474cf participation_id=49e33a71-c3c8-4b10-922c-843b32cea98a event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015 participant_user_id=ad3f2184-7f4b-49d0-a6fa-47b468c459af ticket_status=ACTIVE
2026/05/16 14:43:05 INFO event participation created operation=event.participation.create event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015 user_id=ad3f2184-7f4b-49d0-a6fa-47b468c459af participation_id=49e33a71-c3c8-4b10-922c-843b32cea98a participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=2770f3dd-ade9-4a9b-8aeb-f3518b73fc64 host_user_id=184e30fe-4ae8-48ff-a83a-8e1d308cbd70 event_version=1
--- PASS: TestGetMyCompletedEventsExcludesLeavedParticipationBeforeStart (0.04s)
=== CONT TestGetMyProfileReturnsScoreFields
--- PASS: TestAuthCheckAvailabilityReturnsTakenForPersistedIdentity (0.02s)
--- PASS: TestAudienceAttributes_CreateAndDetail (0.03s)
2026/05/16 14:43:05 INFO event initial version snapshot created operation=event.create.version_snapshot event_id=75a2d262-a71e-4a2d-be85-cdb3fa5c5913 host_user_id=1ed1d1cc-550c-4a9d-ad89-b1211eba9a22 event_version=1
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=ea731dbc-1b18-42c1-a6b7-4a9c96201c68 participation_id=bb617243-a149-406a-8f3c-bb41884a7ab4 event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015 participant_user_id=3dc091e4-3dda-4e38-91b8-056e6318adfb ticket_status=ACTIVE
2026/05/16 14:43:05 INFO event participation created operation=event.participation.create event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015 user_id=3dc091e4-3dda-4e38-91b8-056e6318adfb participation_id=bb617243-a149-406a-8f3c-bb41884a7ab4 participation_status=APPROVED accepted_event_version=1 ticket_created=true
--- PASS: TestAddAndRemoveFavorite (0.05s)
2026/05/16 14:43:05 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=bb617243-a149-406a-8f3c-bb41884a7ab4
--- PASS: TestAudienceAttributes_DefaultsFalse (0.03s)
2026/05/16 14:43:05 INFO ticket created operation=ticket.create_for_participation ticket_id=5b93b9a7-3604-4b78-b697-d4b365968f9e participation_id=d57b2d44-b172-49ab-bc65-e3ab8779ad07 event_id=f048fdb3-7908-4b96-9392-dd48b230d2de participant_user_id=56a2f26c-5d36-46e8-a736-1adccc1cf235 ticket_status=ACTIVE
2026/05/16 14:43:05 INFO event participation created operation=event.participation.create event_id=f048fdb3-7908-4b96-9392-dd48b230d2de user_id=56a2f26c-5d36-46e8-a736-1adccc1cf235 participation_id=d57b2d44-b172-49ab-bc65-e3ab8779ad07 participation_status=APPROVED accepted_event_version=1 ticket_created=true
2026/05/16 14:43:05 INFO event tickets canceled operation=ticket.cancel_for_event event_id=5e09b0e6-1d50-46a9-9dad-85ee8bc20015
2026/05/16 14:43:05 INFO ticket canceled for participation operation=ticket.cancel_for_participation participation_id=d57b2d44-b172-49ab-bc65-e3ab8779ad07
--- PASS: TestGetMyProfileReturnsScoreFields (0.02s)
--- PASS: TestGetMyCompletedEventsIncludesLeavedParticipationAfterStart (0.04s)
--- PASS: TestCancelEventPreservesApprovedSnapshotAndSkipsLeavedParticipations (0.08s)
2026/05/16 14:43:05 INFO admin list query completed operation=admin.users.list user_id=f05224d8-d4f7-4327-a2e0-11566c6d2414 result_count=1 limit=1 offset=0 has_next=false query_summary="limit=1 offset=0 q=regular_1a52a3d7 status=<nil> role=USER created_from=<nil> created_to=<nil>"
--- PASS: TestAdminUsersEndpointAuthorizationAndFiltering (0.03s)
PASS
2026/05/16 14:43:05 🐳 Stopping container: 2add9d990c98
2026/05/16 14:43:05 ✅ Container stopped: 2add9d990c98
2026/05/16 14:43:05 🐳 Terminating container: 2add9d990c98
2026/05/16 14:43:05 🚫 Container terminated: 2add9d990c98
ok github.com/bounswe/bounswe2026group11/backend/tests_integration 20.857s
? github.com/bounswe/bounswe2026group11/backend/tests_integration/common [no test files]
👥 Team Members
- Lab 1 Report (12.02.2026)
- Lab 2 Report (19.02.2026)
- Lab 3 Report (26.02.2026)
- Lab 4 Report (05.03.2026)
- Lab 5 Report (12.03.2026)
- Lab 6 Report (26.03.2026)
- Lab 7 Report (02.04.2026)
- Lab 8 Report (16.04.2026)
- Lab 9 Report (30.04.2026)
- Lab 10 Report (07.05.2026)
- Customer Meeting (17.02.2026)
- Weekly Meeting 1 (17.02.2026)
- Weekly Meeting 2 (25.02.2026)
- Weekly Meeting 3 (04.03.2026)
- Stakeholder Meeting (10.03.2026)
- Weekly Meeting 4 (11.03.2026)
- Database Design Meeting (18.03.2026)
- Weekly Meeting 6 (25.03.2026)
- Weekly Meeting 7 (01.04.2026)
- Weekly Meeting 8 (15.04.2026)
- Weekly Meeting 9 (06.05.2026)
- Scenario 1 - Discovering and Joining an Event
- Scenario 2 - Private Event Organization
- Scenario 3 - Public Event Organization
- Use Case Diagram (Final)
- Scenario 1 Use Case Diagram
- Scenario 2 Use Case Diagram
- Scenario 3 Use Case Diagram
- All Sequence Diagrams
- Sequence Diagram - Oğuz Özer
- Sequence Diagram - Emine Türk
- Sequence Diagram - Cansu Er
- Sequence Diagram - Sevde Pekköse
- Sequence Diagram - Buğra Keser
- Sequence Diagram - Mehmet Kaan Ünsel
- Sequence Diagram - Utku Yiğit Demir
- Sequence Diagram - Mehmet Akif Yıldırım