UniTrack

Projects / unitrack / Tests

unitrack — tests

Pass rate
100.0%
+0.0 pp
Failures
0
0
Suite time
70.9s
+17.6s
Tests
357
0

Latest run 5b4a9e5 on main · Aug 19 19:03

Test results trend (pass/fail per run)

Flaky tests (1)

Tests that both passed and failed for the same commit — likely non-deterministic.

TestStateFlaky commitsFailures Fail rateLast failureAction
org.alexmond.unitrack.web.ui.ScreenshotTourTest#capturesTheTour ACTIVE 1 2/36 5.6% Jun 28 15:33

Failure clusters

Recent failures grouped by a normalized signature (type, message, top stack frame) — most frequent first.

No recent failures to cluster. 🎉

All tests (357)

0 failing · 0 flaky · 0 skipped · 357 passed

TestStatusDurationFlaky
org.alexmond.unitrack.domain.AuditAndShareEntityTest › alertEventCarriesItsFields PASSED 9 ms
org.alexmond.unitrack.domain.AuditAndShareEntityTest › auditEntryExposesItsFields PASSED 2 ms
org.alexmond.unitrack.domain.AuditAndShareEntityTest › shareLinkIsActiveUntilRevoked PASSED 123 ms
org.alexmond.unitrack.ingest.BoundedInputStreamTest › countsSingleByteReadsToo PASSED 5 ms
org.alexmond.unitrack.ingest.BoundedInputStreamTest › exactlyAtTheLimitIsAllowed PASSED 7 ms
org.alexmond.unitrack.ingest.BoundedInputStreamTest › failsFastOnceTheLimitIsExceeded PASSED 1 ms
org.alexmond.unitrack.ingest.BoundedInputStreamTest › nonPositiveLimitDisablesTheGuard PASSED 0 ms
org.alexmond.unitrack.ingest.BoundedInputStreamTest › passesThroughWhenUnderTheLimit PASSED 1 ms
org.alexmond.unitrack.ingest.CoverageModelFidelityTest › coberturaLineAndBranchMatch PASSED 53 ms
org.alexmond.unitrack.ingest.CoverageModelFidelityTest › jacocoFilePathsAreCleanRepoRelative PASSED 8 ms
org.alexmond.unitrack.ingest.CoverageModelFidelityTest › jacocoLineAndBranchMatch PASSED 95 ms
org.alexmond.unitrack.ingest.CoverageParsersTest › detectsAndParsesCobertura PASSED 9 ms
org.alexmond.unitrack.ingest.CoverageParsersTest › detectsAndParsesCoveragePyAsCobertura PASSED 4 ms
org.alexmond.unitrack.ingest.CoverageParsersTest › detectsAndParsesLcov PASSED 2 ms
org.alexmond.unitrack.ingest.CoverageParsersTest › detectsAndParsesOpenCover PASSED 3 ms
org.alexmond.unitrack.ingest.CoverageParsersTest › rejectsUnknownFormat PASSED 1 ms
org.alexmond.unitrack.ingest.GoCoverAndBenchParserTest › goBenchParsesNsPerOpAndDetects PASSED 11 ms
org.alexmond.unitrack.ingest.GoCoverAndBenchParserTest › goCoverParsesStatementsAndDetects PASSED 4 ms
org.alexmond.unitrack.ingest.GzipStreamsTest › handlesEmptyStream PASSED 2 ms
org.alexmond.unitrack.ingest.GzipStreamsTest › inflatesGzippedStream PASSED 2 ms
org.alexmond.unitrack.ingest.GzipStreamsTest › passesPlainStreamThrough PASSED 1 ms
org.alexmond.unitrack.ingest.JacocoXmlParserTest › parsesAggregateAndPerFileCounters PASSED 82 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › computesAggregateAndPerLabelPercentiles PASSED 3 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › detectsJtlAndIgnoresOtherFormats PASSED 0 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › emptyFileYieldsZeroes PASSED 2 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › handlesBomUnorderedColumnsAndQuotedLabels PASSED 2 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › rejectsFileMissingRequiredColumns PASSED 5 ms
org.alexmond.unitrack.ingest.JmeterJtlParserTest › toleratesATruncatedTailFromAnAbortedRun PASSED 38 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › convertsNanosecondScores PASSED 6 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › detectsJmhReportNotOtherFormats PASSED 1 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › parsesAvgtBenchmarkConvertingUnitAndPercentiles PASSED 2 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › parsesThroughputBenchmarkInvertingToMeanMsWithFlatPercentiles PASSED 4 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › rejectsEmptyOrNonArray PASSED 1 ms
org.alexmond.unitrack.ingest.JmhJsonParserTest › rollsUpMeanWeightedButPercentilesAsWorstAcrossBenchmarks PASSED 2 ms
org.alexmond.unitrack.ingest.JUnitXmlParserTest › parsesCountsStatusesAndFailures PASSED 3 ms
org.alexmond.unitrack.ingest.K6JsonParserTest › detectsK6SummaryNotOtherFormats PASSED 2 ms
org.alexmond.unitrack.ingest.K6JsonParserTest › parsesK6SummaryMetrics PASSED 62 ms
org.alexmond.unitrack.ingest.NewTestResultFormatsTest › ctrfParsesAndDetects PASSED 26 ms
org.alexmond.unitrack.ingest.NewTestResultFormatsTest › dispatcherRoutesEachFormatByContent PASSED 5 ms
org.alexmond.unitrack.ingest.NewTestResultFormatsTest › goTestParsesAndDetects PASSED 8 ms
org.alexmond.unitrack.ingest.NewTestResultFormatsTest › trxParsesAndDetects PASSED 9 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › fallsBackToFirstSuffixMatchWhenModuleDoesNotMatch PASSED 1 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › matchesAnExactManifestEntryWithNoLeadingSegment PASSED 1 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › prefersMatchUnderTheKnownModule PASSED 0 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › resolvesPackageRelativePathToRepoRelativeBySuffix PASSED 1 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › returnsNullForEmptyOrAbsentManifest PASSED 1 ms
org.alexmond.unitrack.ingest.SourcePathResolverTest › returnsNullWhenNothingMatches PASSED 1 ms
org.alexmond.unitrack.ingest.StaxXmlSafetyTest › doesNotResolveAnExternalEntity PASSED 22 ms
org.alexmond.unitrack.ingest.StaxXmlSafetyTest › parsesDespiteADoctypeDeclaration PASSED 1 ms
org.alexmond.unitrack.ingest.XUnitNUnitGatlingParserTest › dispatcherRoutesXunitAndNunit PASSED 12 ms
org.alexmond.unitrack.ingest.XUnitNUnitGatlingParserTest › gatlingParsesAndDetects PASSED 11 ms
org.alexmond.unitrack.ingest.XUnitNUnitGatlingParserTest › nunitParsesAndDetects PASSED 4 ms
org.alexmond.unitrack.ingest.XUnitNUnitGatlingParserTest › xunitParsesAndDetects PASSED 22 ms
org.alexmond.unitrack.report.BranchCleanupServiceTest › deleteBranchRemovesEveryRunOfANormalBranch PASSED 10 ms
org.alexmond.unitrack.report.BranchCleanupServiceTest › deleteBranchSkipsTheDefaultBranch PASSED 7 ms
org.alexmond.unitrack.report.BranchCleanupServiceTest › expiresStaleNonProtectedBranchesOnly PASSED 211 ms
org.alexmond.unitrack.report.BranchCleanupServiceTest › retainDaysZeroDisablesExpiry PASSED 1,086 ms
org.alexmond.unitrack.report.BranchGlobTest › globMatching PASSED 2 ms
org.alexmond.unitrack.report.BranchServiceQueryTest › issuesAConstantNumberOfQueriesRegardlessOfBranchCount PASSED 54 ms
org.alexmond.unitrack.report.BranchServiceQueryTest › summarisesBranchesDefaultFirstWithCorrectCounts PASSED 60 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › aDropThatRecoversReadsAsStableAtTheTail PASSED 3 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › aGenuineStepOnAPerfectlyFlatSeriesStillFires PASSED 1 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › aRampThatSettlesAtAWorseLevelIsRegressed PASSED 1 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › flatSeriesIsStable PASSED 1 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › loneSpikeIsNotARegression PASSED 1 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › pureLinearDriftIsNotTreatedAsAStep PASSED 2 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › stepUpInLatencyIsRegressedWithOnsetAtTheStep PASSED 6 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › throughputDropIsRegressedWhenLowerIsWorse PASSED 3 ms
org.alexmond.unitrack.report.ChangePointDetectorTest › tooFewPointsIsInsufficientData PASSED 1 ms
org.alexmond.unitrack.report.ComparisonServiceTest › classifiesNewlyFailingFixedAndStillFailing PASSED 14 ms
org.alexmond.unitrack.report.ComparisonServiceTest › coverageDeltaNullWhenEitherSideLacksCoverage PASSED 5 ms
org.alexmond.unitrack.report.ComparisonServiceTest › emptyWhenEitherRunMissing PASSED 1 ms
org.alexmond.unitrack.report.ComparisonTimingTest › timingDeltasShowPerTestChangesNewestVsBase PASSED 27 ms
org.alexmond.unitrack.report.CoreReportingTest › exercisesAllReportServicesAgainstRealContext PASSED 355 ms
org.alexmond.unitrack.report.CoreReportingTest › ingestsJmeterPerfRunWithPerLabelRows PASSED 29 ms
org.alexmond.unitrack.report.CoreReportingTest › perfRunDetailExposesPerLabelRowsAndBaselineDelta PASSED 45 ms
org.alexmond.unitrack.report.CoreReportingTest › perfRunRegressionFlagsLatencyAndErrorsVsBaseline PASSED 22 ms
org.alexmond.unitrack.report.ModuleCoverageTest › coveragePackagesScopeToOneModule PASSED 6 ms
org.alexmond.unitrack.report.ModuleCoverageTest › groupsByModuleSegmentAfterCommonPrefix PASSED 458 ms
org.alexmond.unitrack.report.ModuleCoverageTest › singleModuleCollapsesToOneEntrySoTheViewCanHide PASSED 5 ms
org.alexmond.unitrack.report.ModuleCoverageTest › usesExplicitUploaderModuleWhenPresent PASSED 8 ms
org.alexmond.unitrack.report.OwnershipGlobalScorecardTest › sumsFailingByOwnerAcrossProjects PASSED 216 ms
org.alexmond.unitrack.report.OwnershipServiceTest › attributesOwnersByClassNameRegexFirstMatchWins PASSED 4 ms
org.alexmond.unitrack.report.OwnershipServiceTest › lowerPriorityRuleShadowsAndInvalidRegexFallsBackToSubstring PASSED 16 ms
org.alexmond.unitrack.report.OwnershipServiceTest › scorecardCountsFailingAndFlakyByOwnerWithUnassignedBucket PASSED 95 ms
org.alexmond.unitrack.report.PerfStepDetectionServiceTest › aStableSeriesProducesNoSignal PASSED 76 ms
org.alexmond.unitrack.report.PerfStepDetectionServiceTest › detectsASustainedP95StepAndItsOnset PASSED 122 ms
org.alexmond.unitrack.report.ProjectHealthBoardOrderTest › breaksTiesByNameAmongEquallyHealthyProjects PASSED 2 ms
org.alexmond.unitrack.report.ProjectHealthBoardOrderTest › ordersRegressedFirstThenLongestBrokenThenRankThenName PASSED 1 ms
org.alexmond.unitrack.report.RunDeletionServiceTest › deleteRemovesRunAndChildren PASSED 170 ms
org.alexmond.unitrack.report.TestModuleGroupingTest › groupsByExplicitUploaderModule PASSED 66 ms
org.alexmond.unitrack.report.TrendChronologicalOrderTest › earlierTimestampComesFirstEvenWhenInsertedLater PASSED 17 ms
org.alexmond.unitrack.report.TrendChronologicalOrderTest › tiesBreakByIdSoTheSeriesIsMonotonic PASSED 18 ms
org.alexmond.unitrack.report.TrendFlagScopeTest › trendScopedToFlagExcludesOtherFlags PASSED 143 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › allSkippedRunCountsAsGreenAndEndsTheStreak PASSED 22 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › countsAFailedRunSharingTheLastGreensTimestamp PASSED 641 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › handlesNeverGreenSeries PASSED 17 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › ignoresGreenOnADifferentBranchWhenComputingTheStreak PASSED 17 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › omitsProjectsWhoseLatestRunPassed PASSED 21 ms
org.alexmond.unitrack.repository.BrokenSinceQueryTest › reportsCurrentRedStreakSinceLastGreen PASSED 21 ms
org.alexmond.unitrack.web.account.MembershipServiceTest › readableBy_adminSeesEverything_withoutLoadingMemberships PASSED 2 ms
org.alexmond.unitrack.web.account.MembershipServiceTest › readableBy_anonymousSeesOnlyPublic PASSED 1 ms
org.alexmond.unitrack.web.account.MembershipServiceTest › readableBy_loadsUserAndMembershipsOnce_noPerProjectQuery PASSED 5 ms
org.alexmond.unitrack.web.ai.AiAnalyzerStubIntegrationTest › bindsStructuredDiagnosisAndCachesPerSignature PASSED 82 ms
org.alexmond.unitrack.web.ai.AiAnalyzerTest › blankApiKeyIsTreatedAsDisabled PASSED 1 ms
org.alexmond.unitrack.web.ai.AiAnalyzerTest › disabledWithoutApiKeyIsANoOp PASSED 1 ms
org.alexmond.unitrack.web.ai.AiAnalyzerTest › enabledWhenApiKeyPresentButStillSafeWithoutAModel PASSED 1 ms
org.alexmond.unitrack.web.alert.AlertChannelIntegrationTest › listIsScopedToProjectAndDisabledChannelsAreNotResolved PASSED 12 ms
org.alexmond.unitrack.web.alert.AlertChannelIntegrationTest › maskNeverRevealsTheSecret PASSED 4 ms
org.alexmond.unitrack.web.alert.AlertChannelIntegrationTest › secretIsEncryptedAtRestAndResolvedDecrypted PASSED 10 ms
org.alexmond.unitrack.web.alert.AlertEventPublisherTest › aThrowingSinkIsIsolatedAndNeverPropagates PASSED 8 ms
org.alexmond.unitrack.web.alert.AlertEventPublisherTest › emitsGateRegressionAndCoverageEvents PASSED 7 ms
org.alexmond.unitrack.web.alert.AlertEventPublisherTest › emitsNothingForACleanRun PASSED 2 ms
org.alexmond.unitrack.web.alert.AlertEventPublisherTest › gateFailureMutedWhenEveryFailureIsFlaky PASSED 123 ms
org.alexmond.unitrack.web.alert.AlertEventPublisherTest › gateFailureMutedWhenPreviousRunWasAlsoRed PASSED 3 ms
org.alexmond.unitrack.web.alert.Notify4jAlertSinkTest › doesNothingWhenProjectHasNoEnabledChannels PASSED 0 ms
org.alexmond.unitrack.web.alert.Notify4jAlertSinkTest › mapsChannelTypesToNotify4jUrls PASSED 1 ms
org.alexmond.unitrack.web.alert.Notify4jAlertSinkTest › mapsTheWebhookStyleChannels PASSED 1 ms
org.alexmond.unitrack.web.alert.Notify4jAlertSinkTest › sendsThroughNotify4jWithKindAsRouteTag PASSED 122 ms
org.alexmond.unitrack.web.AlertsUiIntegrationTest › anonymousIsSentToLogin PASSED 19 ms
org.alexmond.unitrack.web.AlertsUiIntegrationTest › nonOwnerCannotAddChannel PASSED 21 ms
org.alexmond.unitrack.web.AlertsUiIntegrationTest › nonOwnerCannotSendTest PASSED 22 ms
org.alexmond.unitrack.web.AlertsUiIntegrationTest › ownerAddsChannelAndSecretIsMaskedOnThePage PASSED 119 ms
org.alexmond.unitrack.web.AlertsUiIntegrationTest › ownerCanSendATestThroughAChannel PASSED 74 ms
org.alexmond.unitrack.web.AsyncIngestIntegrationTest › asyncMalformedUploadEndsFailedWithReason PASSED 116 ms
org.alexmond.unitrack.web.AsyncIngestIntegrationTest › asyncUploadIsAcceptedThenProcessedOffThread PASSED 146 ms
org.alexmond.unitrack.web.AsyncIngestIntegrationTest › jobByIdIsVisibleToAdminButNotAnonymous PASSED 139 ms
org.alexmond.unitrack.web.AsyncIngestIntegrationTest › recoverStuckFailsInFlightJobs PASSED 12 ms
org.alexmond.unitrack.web.AuditApiIntegrationTest › anonymousIsUnauthorized PASSED 11 ms
org.alexmond.unitrack.web.AuditApiIntegrationTest › ingestIsAuditedAndQueryableByAdmin PASSED 59 ms
org.alexmond.unitrack.web.AuditApiIntegrationTest › nonAdminIsForbidden PASSED 17 ms
org.alexmond.unitrack.web.AuditLogUiIntegrationTest › adminSeesRecordedActions PASSED 65 ms
org.alexmond.unitrack.web.AuditLogUiIntegrationTest › anonymousIsSentToLogin PASSED 7 ms
org.alexmond.unitrack.web.AuditLogUiIntegrationTest › nonAdminIsForbidden PASSED 6 ms
org.alexmond.unitrack.web.AuthIntegrationTest › apiTokenAuthenticatesAndRevocationDeniesAccess PASSED 21 ms
org.alexmond.unitrack.web.AuthIntegrationTest › formLoginGrantsAccessToProfileWhileAnonymousIsRedirected PASSED 158 ms
org.alexmond.unitrack.web.AuthIntegrationTest › openModeKeepsDataApisAccessibleWithoutAuth PASSED 34 ms
org.alexmond.unitrack.web.BadgeIntegrationTest › privateProjectBadgeIsHidden PASSED 11 ms
org.alexmond.unitrack.web.BadgeIntegrationTest › publicCoverageAndPassBadgesRender PASSED 19 ms
org.alexmond.unitrack.web.BadgeIntegrationTest › shieldsEndpointReturnsJson PASSED 20 ms
org.alexmond.unitrack.web.BadgeIntegrationTest › unknownMetricIs404 PASSED 11 ms
org.alexmond.unitrack.web.BlameIntegrationTest › blamePointsAtFirstFailureSinceLastGreen PASSED 70 ms
org.alexmond.unitrack.web.BlameIntegrationTest › noBlameWhenNothingFails PASSED 29 ms
org.alexmond.unitrack.web.BlameIntegrationTest › unknownRunIsNotFound PASSED 7 ms
org.alexmond.unitrack.web.BranchSelectorIntegrationTest › branchesSectionListsEachBranchAndMarksTheDefault PASSED 147 ms
org.alexmond.unitrack.web.BranchSelectorIntegrationTest › overviewDefaultsToBaseBranchAndScopesToSelectedBranch PASSED 2,290 ms
org.alexmond.unitrack.web.ClosedModePublicReadIntegrationTest › anonymousCanReadPublicButNotPrivate PASSED 398 ms
org.alexmond.unitrack.web.ClosedModePublicReadIntegrationTest › anonymousWritesAndProfileRequireLogin PASSED 22 ms
org.alexmond.unitrack.web.ClosedModeStaticAssetsTest › staticAssetsAreServedAnonymouslyWhileProtectedPagesRedirect PASSED 12 ms
org.alexmond.unitrack.web.ComparisonRenderIntegrationTest › compareTwoRunsRendersOk PASSED 205 ms
org.alexmond.unitrack.web.CoverageDiffIntegrationTest › firstRunHasNoBaselineSoNoDiffSection PASSED 63 ms
org.alexmond.unitrack.web.CoverageDiffIntegrationTest › runShowsPerFileCoverageDiffVersusBaseline PASSED 83 ms
org.alexmond.unitrack.web.CoverageFlagsIntegrationTest › gateBaselineIsScopedToFlagAndFlagsAreListed PASSED 163 ms
org.alexmond.unitrack.web.CoverageFormatsIntegrationTest › ingestsCoberturaUnderTheCoverageField PASSED 237 ms
org.alexmond.unitrack.web.CoveragePageIntegrationTest › coveragePageShowsEmptyStateWithoutCoverage PASSED 38 ms
org.alexmond.unitrack.web.CoveragePageIntegrationTest › coveragePageShowsPackagesAndWorstFiles PASSED 50 ms
org.alexmond.unitrack.web.CoveragePageIntegrationTest › coverageUnknownProjectIsNotFound PASSED 7 ms
org.alexmond.unitrack.web.CoveragePageIntegrationTest › modulePageIsScopedAndDropsThePicker PASSED 81 ms
org.alexmond.unitrack.web.CoveragePageIntegrationTest › modulePickerLinksToDedicatedModulePages PASSED 47 ms
org.alexmond.unitrack.web.FailureClusterIntegrationTest › groupsSimilarFailuresIntoClusters PASSED 235 ms
org.alexmond.unitrack.web.FlakyDetectionIntegrationTest › consistentlyFailingTestIsNotFlaky PASSED 61 ms
org.alexmond.unitrack.web.FlakyDetectionIntegrationTest › detectsAndQuarantinesAFlakyTest PASSED 87 ms
org.alexmond.unitrack.web.GateCacheIntegrationTest › gateIsCachedPerRunAndEvictedOnMerge PASSED 48 ms
org.alexmond.unitrack.web.GateLookupIntegrationTest › looksUpGateByBranch PASSED 97 ms
org.alexmond.unitrack.web.GateLookupIntegrationTest › looksUpGateByCommit PASSED 182 ms
org.alexmond.unitrack.web.GateLookupIntegrationTest › missingCommitAndBranchIsBadRequest PASSED 22 ms
org.alexmond.unitrack.web.GateLookupIntegrationTest › unknownProjectIsNotFound PASSED 26 ms
org.alexmond.unitrack.web.github.GitHubAppTokenServiceTest › cachesInstallationTokenAndRefetchesAfterExpiry PASSED 20 ms
org.alexmond.unitrack.web.github.GitHubAppTokenServiceTest › rejectsPkcs1KeyWithAConversionHint PASSED 3 ms
org.alexmond.unitrack.web.github.GitHubAppTokenServiceTest › returnsNullWhenAppNotInstalledOnRepo PASSED 24 ms
org.alexmond.unitrack.web.github.GitHubAppTokenServiceTest › signsAVerifiableRs256Jwt PASSED 8 ms
org.alexmond.unitrack.web.github.GitHubCheckRunServiceTest › addedLinesIsEmptyForANullPatch PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubCheckRunServiceTest › addedLinesParsesNewFileLineNumbersFromAPatch PASSED 1 ms
org.alexmond.unitrack.web.github.GitHubCheckRunServiceTest › postsACheckRunWithAnnotationsOnUncoveredChangedLines PASSED 775 ms
org.alexmond.unitrack.web.github.GitHubCheckRunServiceTest › returnsFalseWhenNoAppConfiguredSoStatusFallbackRuns PASSED 3 ms
org.alexmond.unitrack.web.github.GitHubConfigResolverTest › appliesPerProjectOverrides PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubConfigResolverTest › fallsBackToGlobalsWhenNoOverride PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubConfigResolverTest › nullProjectIdUsesGlobals PASSED 1 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › createsCommentWhenNoneExists PASSED 5 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › createsPerfCommentUsingItsOwnMarker PASSED 7 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › ignoresMarkedCommentAuthoredByAnotherUser PASSED 10 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › rendersPerfTableWithRulesAndMarker PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › rendersPullRequestLinkForPrRun PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › rendersTableWithMarkerAndMetrics PASSED 3 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › skipsWhenNoPullRequest PASSED 6 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › skipsWhenPrCommentDisabledForProject PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubPrCommentServiceTest › updatesExistingCommentInPlace PASSED 6 ms
org.alexmond.unitrack.web.github.GitHubRepoServiceTest › followsLinkHeaderPaginationAcrossPages PASSED 11 ms
org.alexmond.unitrack.web.github.GitHubRepoServiceTest › listsAndMapsReposFromTheApi PASSED 3 ms
org.alexmond.unitrack.web.github.GitHubRepoServiceTest › notConfiguredWhenDisabledOrTokenMissing PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubScmPublisherTest › fallsBackToTheCommitStatusWhenThereIsNoCheckRun PASSED 8 ms
org.alexmond.unitrack.web.github.GitHubScmPublisherTest › namesItsProvider PASSED 1 ms
org.alexmond.unitrack.web.github.GitHubScmPublisherTest › postsOnlyTheCheckRunWhenItIsAvailable PASSED 2 ms
org.alexmond.unitrack.web.github.GitHubStatusServiceTest › doesNothingWhenDisabled PASSED 3 ms
org.alexmond.unitrack.web.github.GitHubStatusServiceTest › parsesOwnerAndRepoFromVariousUrls PASSED 13 ms
org.alexmond.unitrack.web.github.GitHubStatusServiceTest › postsCommitStatusForFailingGate PASSED 8 ms
org.alexmond.unitrack.web.github.GitHubStatusServiceTest › usesPerProjectContextOverride PASSED 5 ms
org.alexmond.unitrack.web.github.ProjectImportServiceTest › ignoresReposThatWereNotSelected PASSED 1 ms
org.alexmond.unitrack.web.github.ProjectImportServiceTest › importsSelectedNewReposAndSkipsExisting PASSED 4 ms
org.alexmond.unitrack.web.gitlab.GitLabConfigResolverTest › fallsBackToGlobalWhenNoOverride PASSED 588 ms
org.alexmond.unitrack.web.gitlab.GitLabConfigResolverTest › perProjectOverrideWins PASSED 4 ms
org.alexmond.unitrack.web.gitlab.GitLabRepoServiceTest › followsLinkHeaderPaginationAcrossPages PASSED 31 ms
org.alexmond.unitrack.web.gitlab.GitLabRepoServiceTest › listsAndMapsProjectsFromTheApi PASSED 8 ms
org.alexmond.unitrack.web.gitlab.GitLabRepoServiceTest › notConfiguredWhenDisabledOrTokenMissing PASSED 2 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › createsMergeRequestNoteWhenNoneExists PASSED 11 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › derivesHostFromApiUrl PASSED 2 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › doesNothingWhenDisabledOrNotGitlab PASSED 5 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › ignoresMarkedNoteAuthoredByAnotherUser PASSED 9 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › parsesProjectPathScopedToConfiguredHost PASSED 3 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › postsCommitStatusForFailingGate PASSED 9 ms
org.alexmond.unitrack.web.gitlab.GitLabServiceTest › updatesExistingMergeRequestNoteInPlace PASSED 18 ms
org.alexmond.unitrack.web.HomeBoardIntegrationTest › homeRendersHealthBoardWithGateColumnsAndBothProjects PASSED 276 ms
org.alexmond.unitrack.web.IngestIntegrationTest › rejectsUploadWithoutJunitFile PASSED 7 ms
org.alexmond.unitrack.web.IngestIntegrationTest › uploadsResultsAndExposesThemViaApi PASSED 228 ms
org.alexmond.unitrack.web.IngestJobRecordingIntegrationTest › historyUiAndApiExposeRecordedJobs PASSED 96 ms
org.alexmond.unitrack.web.IngestJobRecordingIntegrationTest › malformedUploadRecordsAFailedJobWithReason PASSED 15 ms
org.alexmond.unitrack.web.IngestJobRecordingIntegrationTest › successfulUploadRecordsAProcessedJob PASSED 24 ms
org.alexmond.unitrack.web.IngestManyPartsIntegrationTest › acceptsRequestWithManyJunitParts PASSED 216 ms
org.alexmond.unitrack.web.IngestPrMetadataIntegrationTest › ordinaryBuildHasNoPrBadge PASSED 49 ms
org.alexmond.unitrack.web.IngestPrMetadataIntegrationTest › prMetadataIsStoredAndShownOnRunDetail PASSED 50 ms
org.alexmond.unitrack.web.IngestSizeGuardIntegrationTest › oversizedReportIsRejectedAndRecordedFailed PASSED 68 ms
org.alexmond.unitrack.web.IngestTokenScopeIntegrationTest › actionScopedTokenIsRejectedOutsideMcp PASSED 23 ms
org.alexmond.unitrack.web.IngestTokenScopeIntegrationTest › fullTokenIsUnrestricted PASSED 42 ms
org.alexmond.unitrack.web.IngestTokenScopeIntegrationTest › ingestScopedTokenCanUploadButNotRead PASSED 72 ms
org.alexmond.unitrack.web.live.LiveBoardIntegrationTest › boardRowHasLiveHooksAndListener PASSED 182 ms
org.alexmond.unitrack.web.live.LiveClientAssetIntegrationTest › indexPageIncludesTheLiveIndicatorAndScript PASSED 125 ms
org.alexmond.unitrack.web.live.LiveClientAssetIntegrationTest › liveScriptIsServedAndConnectsToTheEventStream PASSED 17 ms
org.alexmond.unitrack.web.live.LiveEventsEndpointIntegrationTest › eventsEndpointStartsAsyncAndRegistersSubscriber PASSED 19 ms
org.alexmond.unitrack.web.live.LiveEventServiceTest › heartbeatRetainsHealthySubscribers PASSED 0 ms
org.alexmond.unitrack.web.live.LiveEventServiceTest › publishDeliversOnlyToSubscribersWhoMayReadTheProject PASSED 2 ms
org.alexmond.unitrack.web.live.LiveEventServiceTest › runUpdateMapsTheRun PASSED 3 ms
org.alexmond.unitrack.web.live.LiveProjectPageIntegrationTest › projectPageHasRunsBodyAndListener PASSED 61 ms
org.alexmond.unitrack.web.live.SseStreamContractIntegrationTest › aPublishedRunReachesAnOpenStream PASSED 109 ms
org.alexmond.unitrack.web.MainApplicationYamlTest › mainApplicationYamlParsesWithSpringsStrictLoader PASSED 18 ms
org.alexmond.unitrack.web.mcp.McpActionToolsDisabledTest › allWriteToolsRefuseWhenDisabledAndTouchNothing PASSED 2 ms
org.alexmond.unitrack.web.mcp.McpActionToolsIntegrationTest › createTriageRulePersistsAndAudits PASSED 15 ms
org.alexmond.unitrack.web.mcp.McpActionToolsIntegrationTest › guardsRejectUnknownTargets PASSED 25 ms
org.alexmond.unitrack.web.mcp.McpActionToolsIntegrationTest › quarantineFlakyTestSetsStatusAndAudits PASSED 18 ms
org.alexmond.unitrack.web.mcp.McpToolsIntegrationTest › coverageReportsAbsentWhenRunHasNoCoverage PASSED 8 ms
org.alexmond.unitrack.web.mcp.McpToolsIntegrationTest › mcpServerRegistersAllReadOnlyTools PASSED 12 ms
org.alexmond.unitrack.web.mcp.McpToolsIntegrationTest › summarizeAndCompareSurfaceRegressionsBetweenRuns PASSED 23 ms
org.alexmond.unitrack.web.mcp.McpToolsIntegrationTest › toolsExposeProjectsRunsGateCoverageAndFailures PASSED 53 ms
org.alexmond.unitrack.web.mcp.McpToolsIntegrationTest › unknownProjectAndRunRaiseClearErrors PASSED 6 ms
org.alexmond.unitrack.web.MembershipIntegrationTest › adminManagesMembersViaPage PASSED 78 ms
org.alexmond.unitrack.web.MembershipIntegrationTest › nonOwnerForbiddenFromMembersAndWrites PASSED 37 ms
org.alexmond.unitrack.web.MembershipIntegrationTest › rolesGovernWriteAndManage PASSED 59 ms
org.alexmond.unitrack.web.metrics.MetricsIntegrationTest › ingestObservationDerivesATaggedTimerAndGaugesAreScrapable PASSED 78 ms
org.alexmond.unitrack.web.metrics.TracingIntegrationTest › ingestEmitsParentAndNestedChildObservations PASSED 24 ms
org.alexmond.unitrack.web.ModuleFlagFoldMigrationTest › foldsModuleRunsIntoRollupAndTagsCases PASSED 47 ms
org.alexmond.unitrack.web.ModuleFlagFoldMigrationTest › leavesAComponentFlagWithNoDefaultSiblingUntouched PASSED 28 ms
org.alexmond.unitrack.web.MultiPerfIngestIntegrationTest › perfFlagDefaultsToTheFilenameWhenNotGiven PASSED 20 ms
org.alexmond.unitrack.web.MultiPerfIngestIntegrationTest › uploadingMultiplePerfFilesRecordsOneSeriesEach PASSED 23 ms
org.alexmond.unitrack.web.NewOverviewPageIntegrationTest › failingProjectReadsAsFailing PASSED 69 ms
org.alexmond.unitrack.web.NewOverviewPageIntegrationTest › healthyProjectRendersVerdictAspectStripAndTrend PASSED 85 ms
org.alexmond.unitrack.web.NewOverviewPageIntegrationTest › oldPreviewUrlRedirectsToTheProjectPage PASSED 28 ms
org.alexmond.unitrack.web.NewOverviewPageIntegrationTest › recentRunCommitLinksToRepoHostWhenRepoUrlSet PASSED 61 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › doesNotEmailMembersWhoOptedOut PASSED 96 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › emailsMembersWithAnAddressWhenGateFailsOnWatchedBranch PASSED 16 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › noEmailWhenProjectHasNoMembersWithAddresses PASSED 268 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › skipsWhenGatePassed PASSED 5 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › skipsWhenNotificationsDisabled PASSED 2 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › skipsWhenRunIsNotOnWatchedBranch PASSED 5 ms
org.alexmond.unitrack.web.notify.GateFailureNotifierTest › swallowsErrorsFromDependencies PASSED 10 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › disabledWhenNoMailSenderConfigured PASSED 2 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › linkBuildsAbsoluteUrlTrimmingTrailingSlash PASSED 1 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › sendsHtmlEmailWhenEnabledAndConfigured PASSED 10 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › skipsBlankRecipient PASSED 1 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › skipsWhenDisabled PASSED 251 ms
org.alexmond.unitrack.web.notify.NotificationServiceTest › swallowsSendFailures PASSED 191 ms
org.alexmond.unitrack.web.notify.OwnerFailureNotifierTest › emailsResolvableOwnersAndSkipsUnroutable PASSED 401 ms
org.alexmond.unitrack.web.notify.TokenExpiryReminderTest › noOpAndNoQueryWhenNotificationsDisabled PASSED 9 ms
org.alexmond.unitrack.web.notify.TokenExpiryReminderTest › remindsOwnersWithAnAddressAndMarksEveryTokenReminded PASSED 6 ms
org.alexmond.unitrack.web.notify.TokenExpiryReminderTest › respectsOptOutButStillMarksTokenReminded PASSED 4 ms
org.alexmond.unitrack.web.ops.HealthInfoIntegrationTest › healthIsUpWithTheLiveStreamComponent PASSED 50 ms
org.alexmond.unitrack.web.ops.HealthInfoIntegrationTest › indicatorReportsSubscriberCount PASSED 18 ms
org.alexmond.unitrack.web.ops.HealthInfoIntegrationTest › infoExposesAppMetadata PASSED 198 ms
org.alexmond.unitrack.web.ops.OpsPageIntegrationTest › anonymousIsSentToLogin PASSED 11 ms
org.alexmond.unitrack.web.ops.OpsPageIntegrationTest › nonAdminIsForbidden PASSED 10 ms
org.alexmond.unitrack.web.ops.OpsPageIntegrationTest › opsPageShowsStatsAndRecentFailure PASSED 150 ms
org.alexmond.unitrack.web.OwnersIntegrationTest › pageRendersAndAddIsWriteGated PASSED 284 ms
org.alexmond.unitrack.web.PerfIngestIntegrationTest › combinedTestPlusPerfUploadCreatesBoth PASSED 54 ms
org.alexmond.unitrack.web.PerfIngestIntegrationTest › jmhJsonUploadFromGotmpl4jCreatesPerfRun PASSED 65 ms
org.alexmond.unitrack.web.PerfIngestIntegrationTest › perfOnlyUploadCreatesPerfRun PASSED 28 ms
org.alexmond.unitrack.web.PerfIngestIntegrationTest › uploadWithoutAnyFileIsRejected PASSED 15 ms
org.alexmond.unitrack.web.PerformanceIntegrationTest › modulePageIsScopedAndDropsThePicker PASSED 101 ms
org.alexmond.unitrack.web.PerformanceIntegrationTest › modulePickerLinksToDedicatedModulePages PASSED 66 ms
org.alexmond.unitrack.web.PerformanceIntegrationTest › ranksSlowestTestsAndChartsSuiteTime PASSED 102 ms
org.alexmond.unitrack.web.PerformanceIntegrationTest › unknownProjectPerformanceIsNotFound PASSED 8 ms
org.alexmond.unitrack.web.PerfRegressionIntegrationTest › flagsTestsThatGotSlowerVsBaseline PASSED 69 ms
org.alexmond.unitrack.web.PerfRegressionIntegrationTest › noBaselineForFirstRun PASSED 33 ms
org.alexmond.unitrack.web.PerfRegressionIntegrationTest › unknownRunIsNotFound PASSED 10 ms
org.alexmond.unitrack.web.PerfRunDetailIntegrationTest › detailApiReturnsPerLabelRowsRegressionAndBaselineDelta PASSED 29 ms
org.alexmond.unitrack.web.PerfRunDetailIntegrationTest › detailPageRendersPerLabelTable PASSED 46 ms
org.alexmond.unitrack.web.PerfRunDetailIntegrationTest › unknownPerfRunIsNotFound PASSED 7 ms
org.alexmond.unitrack.web.PerfRunRegressionIntegrationTest › regressionEndpointReturns422OnRegressionAnd200WhenWithinThresholds PASSED 40 ms
org.alexmond.unitrack.web.PerfRunRegressionIntegrationTest › unknownPerfRunIsNotFound PASSED 8 ms
org.alexmond.unitrack.web.PerfTransactionPageIntegrationTest › transactionDetailRendersTrendAndHistory PASSED 248 ms
org.alexmond.unitrack.web.PerfTransactionPageIntegrationTest › unknownTransactionShowsEmptyStateNotError PASSED 71 ms
org.alexmond.unitrack.web.PerfTrendIntegrationTest › perfTrendEndpointAndPageReturnData PASSED 86 ms
org.alexmond.unitrack.web.PerfTrendIntegrationTest › perfTrendUnknownProjectIsNotFound PASSED 8 ms
org.alexmond.unitrack.web.ProjectIngestScopeIntegrationTest › recentForProjectReturnsOnlyThatProjectsJobs PASSED 177 ms
org.alexmond.unitrack.web.ProjectSettingsIntegrationTest › perProjectMinCoverageOverridesGlobalDefault PASSED 85 ms
org.alexmond.unitrack.web.ProjectSettingsIntegrationTest › settingsPageRendersAndSavesForAuthenticatedUser PASSED 138 ms
org.alexmond.unitrack.web.ProjectSettingsIntegrationTest › settingsPageRequiresLogin PASSED 58 ms
org.alexmond.unitrack.web.ProjectVisibilityIntegrationTest › anonymousSeesPublicButNotPrivate PASSED 329 ms
org.alexmond.unitrack.web.ProjectVisibilityIntegrationTest › memberAndAdminCanReadPrivate PASSED 188 ms
org.alexmond.unitrack.web.ProjectVisibilityIntegrationTest › visibilityToggleIsOwnerOnly PASSED 213 ms
org.alexmond.unitrack.web.PrPageIntegrationTest › prPageAndOverviewSectionRender PASSED 86 ms
org.alexmond.unitrack.web.PrPageIntegrationTest › unknownPrIsNotFound PASSED 30 ms
org.alexmond.unitrack.web.PullRequestGroupingIntegrationTest › groupsRunsByPullRequestAndExcludesBranchBuilds PASSED 72 ms
org.alexmond.unitrack.web.PullRequestGroupingIntegrationTest › unknownProjectIsNotFound PASSED 7 ms
org.alexmond.unitrack.web.QualityGateIntegrationTest › gateFailsOnNewFailureAndPassesAfterQuarantine PASSED 239 ms
org.alexmond.unitrack.web.ReportMergingIntegrationTest › shardedUploadsWithSameRunKeyMergeIntoOneRun PASSED 83 ms
org.alexmond.unitrack.web.RunExportIntegrationTest › exportRendersSelfContainedHtml PASSED 33 ms
org.alexmond.unitrack.web.RunExportIntegrationTest › unknownRunIsNotFound PASSED 9 ms
org.alexmond.unitrack.web.scm.GateSummaryTest › describesGateTestsAndCoverageWithDelta PASSED 0 ms
org.alexmond.unitrack.web.scm.GateSummaryTest › omitsCoverageWhenAbsentAndDeltaWhenThereIsNoBaseline PASSED 1 ms
org.alexmond.unitrack.web.scm.GateSummaryTest › reportsNoGateWhenNoneIsConfigured PASSED 1 ms
org.alexmond.unitrack.web.scm.GateSummaryTest › truncatesToTheProviderLimit PASSED 0 ms
org.alexmond.unitrack.web.scm.ScmPublisherWiringTest › everyProviderIsRegisteredInOrder PASSED 4 ms
org.alexmond.unitrack.web.SecureIngestIntegrationTest › ingestRequiresTokenButReadsStayOpen PASSED 85 ms
org.alexmond.unitrack.web.ShareLinkIntegrationTest › revokedAndUnknownTokensAreNotFound PASSED 45 ms
org.alexmond.unitrack.web.ShareLinkIntegrationTest › shareTokenRendersRunReadOnlyEvenWhenProjectIsPrivate PASSED 60 ms
org.alexmond.unitrack.web.SignupEnabledIntegrationTest › emailMustBeUnique PASSED 323 ms
org.alexmond.unitrack.web.SignupEnabledIntegrationTest › shortPasswordIsRejected PASSED 162 ms
org.alexmond.unitrack.web.SignupEnabledIntegrationTest › signupCreatesUserAndLogsThemIn PASSED 99 ms
org.alexmond.unitrack.web.SignupEnabledIntegrationTest › signupFormIsServedWhenEnabled PASSED 40 ms
org.alexmond.unitrack.web.SignupRateLimitIntegrationTest › blocksAfterTheHourlyLimit PASSED 211 ms
org.alexmond.unitrack.web.StatusAndSignupIntegrationTest › signupIsDisabledByDefault PASSED 11 ms
org.alexmond.unitrack.web.StatusAndSignupIntegrationTest › statusPageRendersHealthAsHtml PASSED 36 ms
org.alexmond.unitrack.web.TestDetailIntegrationTest › blameShownForCurrentlyFailingTest PASSED 70 ms
org.alexmond.unitrack.web.TestDetailIntegrationTest › emptyStateForUnknownTest PASSED 36 ms
org.alexmond.unitrack.web.TestDetailIntegrationTest › noBlameForCurrentlyPassingTest PASSED 59 ms
org.alexmond.unitrack.web.TestDetailIntegrationTest › timelineAndSparklineRendered PASSED 78 ms
org.alexmond.unitrack.web.TestOutputIntegrationTest › capturesSystemOutErrAndAttachments PASSED 134 ms
org.alexmond.unitrack.web.TestRegressionIntegrationTest › diffsNewFailuresAndFixesAgainstBaseline PASSED 85 ms
org.alexmond.unitrack.web.TestRegressionIntegrationTest › reportsNoBaselineForTheFirstRun PASSED 27 ms
org.alexmond.unitrack.web.TestRegressionIntegrationTest › unknownRunReturnsNotFound PASSED 8 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › modulePageIsScopedAndDropsThePicker PASSED 152 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › modulePickerLinksToDedicatedModulePages PASSED 93 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › multiBranchProjectShowsBranchScopeDropdown PASSED 140 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › oldTabUrlsRedirectToTests PASSED 39 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › publicPageShowsFoldedFlakyAndClusterSections PASSED 82 ms
org.alexmond.unitrack.web.TestsPageIntegrationTest › unknownModuleFallsBackToAllTests PASSED 63 ms
org.alexmond.unitrack.web.TriageIntegrationTest › rulesCategorizeFailures PASSED 125 ms
org.alexmond.unitrack.web.ui.AnalyticsViewTest › repoBaseAcceptsHttpUrlsAndStripsGitAndTrailingSlash PASSED 0 ms
org.alexmond.unitrack.web.ui.AnalyticsViewTest › repoBaseRejectsNonHttpSchemesToPreventXss PASSED 0 ms
org.alexmond.unitrack.web.ui.ImportControllerTest › gitlabTabRendersItsOwnConfigHint PASSED 37 ms
org.alexmond.unitrack.web.ui.ImportControllerTest › rendersBothTabsAndGitHubConfigHintByDefault PASSED 29 ms
org.alexmond.unitrack.web.ui.RunPagePerfTest › runPageSectionBreakdownIsUnderBudget PASSED 40 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › disabledWhenNoSecretConfigured PASSED 1 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › githubBranchDeleteRemovesTheBranch PASSED 5 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › githubIgnoresNonDeleteEvents PASSED 1 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › githubRejectsABadSignature PASSED 2 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › gitlabBranchDeleteRemovesTheBranch PASSED 2 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › gitlabRejectsABadToken PASSED 1 ms
org.alexmond.unitrack.web.webhook.WebhookControllerTest › ownerRepoNormalizesUrls PASSED 1 ms