Test ubuntu-latest for Mercurial 6 on staging #120
integration-test.yaml
on: workflow_dispatch
Dotnet tests on ubuntu-latest for Mercurial 6 on staging
22m 49s
Playwright tests on ubuntu-latest for Mercurial 6 on staging
10m 57s
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/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
|
Dotnet tests on ubuntu-latest for Mercurial 6 on staging:
backend/LexBoxApi/Services/UserService.cs#L10
Parameter 'lexAuthService' is unread.
|
Dotnet tests on ubuntu-latest for Mercurial 6 on staging:
backend/LexBoxApi/Hub/CrdtProjectChangeHub.cs#L8
Parameter 'loggedInContext' is unread.
|
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/Controllers/IntegrationController.cs#L62
Action method returns undeclared status code '404'
|
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/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
|
Dotnet tests on ubuntu-latest for Mercurial 6 on staging:
backend/LexBoxApi/Services/UserService.cs#L10
Parameter 'lexAuthService' is unread.
|
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/Hub/CrdtProjectChangeHub.cs#L8
Parameter 'loggedInContext' is unread.
|
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/Controllers/IntegrationController.cs#L62
Action method returns undeclared status code '404'
|
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)
|