Skip to content

Test ubuntu-latest for Mercurial 6 on staging #120

Test ubuntu-latest for Mercurial 6 on staging

Test ubuntu-latest for Mercurial 6 on staging #120

Re-run triggered October 29, 2024 02:28
Status Failure
Total duration 23m 3s
Artifacts 1

integration-test.yaml

on: workflow_dispatch
Dotnet tests on ubuntu-latest for Mercurial 6 on staging
22m 49s
Dotnet tests on ubuntu-latest for Mercurial 6 on staging
Playwright tests on ubuntu-latest for Mercurial 6 on staging
10m 57s
Playwright tests on ubuntu-latest for Mercurial 6 on staging
Fit to window
Zoom out
Zoom in

Annotations

11 errors, 20 warnings, and 1 notice
Playwright tests on ubuntu-latest for Mercurial 6 on staging
Process completed with exit code 2.
[chromium] › emailWorkflow.test.ts:115:1 › register via new-user invitation email: frontend/tests/emailWorkflow.test.ts#L130
1) [chromium] › emailWorkflow.test.ts:115:1 › register via new-user invitation email ───────────── TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for locator('dialog.modal').filter({ hasText: 'Add or invite a Member to this project' }).getByRole('button', { name: /Add Member|Add or invite Member/ }) 128 | await addMemberModal.selectEditorRole(); 129 | await addMemberModal.inviteCheckbox.check(); > 130 | await addMemberModal.submitButton.click(); | ^ 131 | await page.locator(':text("has been sent an invitation email")').waitFor(); 132 | 133 | // Check invite link returnTo is relative path, not absolute at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:130:37
[chromium] › emailWorkflow.test.ts:115:1 › register via new-user invitation email: frontend/tests/emailWorkflow.test.ts#L130
1) [chromium] › emailWorkflow.test.ts:115:1 › register via new-user invitation email ───────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for locator('dialog.modal').filter({ hasText: 'Add or invite a Member to this project' }).getByRole('button', { name: /Add Member|Add or invite Member/ }) 128 | await addMemberModal.selectEditorRole(); 129 | await addMemberModal.inviteCheckbox.check(); > 130 | await addMemberModal.submitButton.click(); | ^ 131 | await page.locator(':text("has been sent an invitation email")').waitFor(); 132 | 133 | // Check invite link returnTo is relative path, not absolute at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:130:37
[chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file: frontend/tests/resetProject.test.ts#L35
2) [chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file ─────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: getByText('Project successfully reset') Expected: visible Received: <element(s) not found> Call log: - expect.toBeVisible with timeout 5000ms - waiting for getByText('Project successfully reset') 33 | await resetProjectModel.clickNextStepButton('Reset project'); 34 | await resetProjectModel.uploadProjectZipFile('tests/data/test-project-one-commit.zip'); > 35 | await expect(page.getByText('Project successfully reset')).toBeVisible(); | ^ 36 | await page.getByRole('button', { name: 'Close' }).click(); 37 | await resetProjectModel.assertGone(); 38 | at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/resetProject.test.ts:35:62
[chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file: frontend/tests/resetProject.test.ts#L35
2) [chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file ─────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: getByText('Project successfully reset') Expected: visible Received: <element(s) not found> Call log: - expect.toBeVisible with timeout 5000ms - waiting for getByText('Project successfully reset') 33 | await resetProjectModel.clickNextStepButton('Reset project'); 34 | await resetProjectModel.uploadProjectZipFile('tests/data/test-project-one-commit.zip'); > 35 | await expect(page.getByText('Project successfully reset')).toBeVisible(); | ^ 36 | await page.getByRole('button', { name: 'Close' }).click(); 37 | await resetProjectModel.assertGone(); 38 | at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/resetProject.test.ts:35:62
[chromium] › viewerPage.test.ts:9:1 › navigate to viewer: frontend/tests/pages/projectPage.ts#L48
3) [chromium] › viewerPage.test.ts:9:1 › navigate to viewer ────────────────────────────────────── TimeoutError: browserContext.waitForEvent: Timeout 5000ms exceeded while waiting for event "page" at pages/projectPage.ts:48 46 | 47 | async clickBrowseInViewer(): Promise<ViewerPage> { > 48 | const viewerTabPromise = this.page.context().waitForEvent('page') | ^ 49 | await this.browseButton.click(); 50 | const viewerTab = await viewerTabPromise; 51 | return new ViewerPage(viewerTab, this.name, this.code).waitFor(); at ProjectPage.clickBrowseInViewer (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/projectPage.ts:48:50) at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/viewerPage.test.ts:16:40
[chromium] › viewerPage.test.ts:9:1 › navigate to viewer: frontend/tests/pages/projectPage.ts#L49
3) [chromium] › viewerPage.test.ts:9:1 › navigate to viewer ────────────────────────────────────── TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for getByRole('link', { name: 'Browse' }) at pages/projectPage.ts:49 47 | async clickBrowseInViewer(): Promise<ViewerPage> { 48 | const viewerTabPromise = this.page.context().waitForEvent('page') > 49 | await this.browseButton.click(); | ^ 50 | const viewerTab = await viewerTabPromise; 51 | return new ViewerPage(viewerTab, this.name, this.code).waitFor(); 52 | } at ProjectPage.clickBrowseInViewer (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/projectPage.ts:49:29) at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/viewerPage.test.ts:16:40
[chromium] › viewerPage.test.ts:9:1 › navigate to viewer: frontend/tests/pages/projectPage.ts#L48
3) [chromium] › viewerPage.test.ts:9:1 › navigate to viewer ────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: browserContext.waitForEvent: Timeout 5000ms exceeded while waiting for event "page" at pages/projectPage.ts:48 46 | 47 | async clickBrowseInViewer(): Promise<ViewerPage> { > 48 | const viewerTabPromise = this.page.context().waitForEvent('page') | ^ 49 | await this.browseButton.click(); 50 | const viewerTab = await viewerTabPromise; 51 | return new ViewerPage(viewerTab, this.name, this.code).waitFor(); at ProjectPage.clickBrowseInViewer (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/projectPage.ts:48:50) at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/viewerPage.test.ts:16:40
[chromium] › viewerPage.test.ts:9:1 › navigate to viewer: frontend/tests/pages/projectPage.ts#L49
3) [chromium] › viewerPage.test.ts:9:1 › navigate to viewer ────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for getByRole('link', { name: 'Browse' }) at pages/projectPage.ts:49 47 | async clickBrowseInViewer(): Promise<ViewerPage> { 48 | const viewerTabPromise = this.page.context().waitForEvent('page') > 49 | await this.browseButton.click(); | ^ 50 | const viewerTab = await viewerTabPromise; 51 | return new ViewerPage(viewerTab, this.name, this.code).waitFor(); 52 | } at ProjectPage.clickBrowseInViewer (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/projectPage.ts:49:29) at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/viewerPage.test.ts:16:40
[chromium] › viewerPage.test.ts:20:1 › find entry: frontend/tests/fixtures.ts#L40
4) [chromium] › viewerPage.test.ts:20:1 › find entry ───────────────────────────────────────────── Error: Unexpected response status: 500. (Request URL: https://staging.languagedepot.org/api/lfclassic/sena-3/entries/?SortField=headword&SortWritingSystem=default&Ascending=true&Count=1000&Offset=0. Traceparent: 00-149c27a2b45fa1eda28f2edf7fd28bff-d04e16feb57c5272-01.) expect(received).toBeLessThan(expected) Expected: < 500 Received: 500 at fixtures.ts:40 38 | const url = response.request().url(); 39 | const unexpectedResponseMessage = `Unexpected response status: ${status}. (Request URL: ${url}. Traceparent: ${traceparent}.)`; > 40 | expect.soft(response.status(), unexpectedResponseMessage).toBeLessThan(500); | ^ 41 | if (response.request().isNavigationRequest()) { 42 | expect.soft(response.status(), unexpectedResponseMessage).toBeLessThan(400); 43 | } at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:40:63)
[chromium] › viewerPage.test.ts:20:1 › find entry: frontend/tests/fixtures.ts#L40
4) [chromium] › viewerPage.test.ts:20:1 › find entry ───────────────────────────────────────────── Error: Unexpected response status: 500. (Request URL: https://staging.languagedepot.org/api/lfclassic/sena-3/writingSystems. Traceparent: 00-18dc4b885423db6e1314c5ee6e7a2018-196b8dd0c92e5b4e-01.) expect(received).toBeLessThan(expected) Expected: < 500 Received: 500 at fixtures.ts:40 38 | const url = response.request().url(); 39 | const unexpectedResponseMessage = `Unexpected response status: ${status}. (Request URL: ${url}. Traceparent: ${traceparent}.)`; > 40 | expect.soft(response.status(), unexpectedResponseMessage).toBeLessThan(500); | ^ 41 | if (response.request().isNavigationRequest()) { 42 | expect.soft(response.status(), unexpectedResponseMessage).toBeLessThan(400); 43 | } at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:40:63)
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/FwLite/MiniLcm/InMemoryApi.cs#L189
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/FwLite/MiniLcm/InMemoryApi.cs#L194
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/FwLite/MiniLcm/InMemoryApi.cs#L226
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/FwLite/MiniLcm/InMemoryApi.cs#L245
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/LexBoxApi/Auth/JwtTicketDataFormat.cs#L122
'JwtBearerOptions.SecurityTokenValidators' is obsolete: 'SecurityTokenValidators is no longer used by default. Use TokenHandlers instead. To continue using SecurityTokenValidators, set UseSecurityTokenValidators to true. See https://aka.ms/aspnetcore8/security-token-changes'
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/LexBoxApi/Services/HgService.cs#L441
The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value. For example, the pattern '(LexBoxApi.Services.RepoEmptyState)2' is not covered.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging
The "--output" option isn't supported when building a solution. Specifying a solution-level output path results in all projects copying outputs to the same directory, which can lead to inconsistent builds.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging
The "--output" option isn't supported when building a solution. Specifying a solution-level output path results in all projects copying outputs to the same directory, which can lead to inconsistent builds.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/LexBoxApi/Auth/JwtTicketDataFormat.cs#L122
'JwtBearerOptions.SecurityTokenValidators' is obsolete: 'SecurityTokenValidators is no longer used by default. Use TokenHandlers instead. To continue using SecurityTokenValidators, set UseSecurityTokenValidators to true. See https://aka.ms/aspnetcore8/security-token-changes'
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/LexBoxApi/Services/HgService.cs#L441
The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value. For example, the pattern '(LexBoxApi.Services.RepoEmptyState)2' is not covered.
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/LexBoxApi/GraphQL/CustomTypes/IsLanguageForgeProjectDataLoader.cs#L64
Method referencing lambda parameter is not supported LINQ expression. (https://www.mongodb.com/docs/mongodb-analyzer/current/rules/#MALinq2001)
Dotnet tests on ubuntu-latest for Mercurial 6 on staging: backend/Testing/Fixtures/Tests/ServicesFixtureTests.cs#L8
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
🎭 Playwright Run Summary
10 failed [chromium] › emailWorkflow.test.ts:115:1 › register via new-user invitation email ────────────── [chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file ──────────────────── [chromium] › viewerPage.test.ts:9:1 › navigate to viewer ─────────────────────────────────────── [chromium] › viewerPage.test.ts:20:1 › find entry ────────────────────────────────────────────── [chromium] › viewerPage.test.ts:50:1 › entry details ─────────────────────────────────────────── [firefox] › emailWorkflow.test.ts:115:1 › register via new-user invitation email ─────────────── [firefox] › resetProject.test.ts:20:1 › reset project and upload .zip file ───────────────────── [firefox] › viewerPage.test.ts:9:1 › navigate to viewer ──────────────────────────────────────── [firefox] › viewerPage.test.ts:20:1 › find entry ─────────────────────────────────────────────── [firefox] › viewerPage.test.ts:50:1 › entry details ──────────────────────────────────────────── 6 flaky [chromium] › emailWorkflow.test.ts:28:1 › register, verify, update, verify email address ─────── [chromium] › errorHandling.test.ts:141:1 › page load 403 on home page is redirected to login ─── [chromium] › userPage.test.ts:22:1 › display form errors on invalid data ─────────────────────── [firefox] › emailWorkflow.test.ts:28:1 › register, verify, update, verify email address ──────── [firefox] › errorHandling.test.ts:141:1 › page load 403 on home page is redirected to login ──── [firefox] › userPage.test.ts:31:1 › can reset password ───────────────────────────────────────── 54 passed (10.0m)