Merge remote-tracking branch 'origin/develop' into main #63
Annotations
11 errors, 21 warnings, and 1 notice
|
frontend/tests/pages/mailPages.ts#L38
1) [chromium] › errorHandling.test.ts:141:1 › page load 403 on home page is redirected to login ──
Error: Failed to find email: Forgot your password? (0)
Timeout 10000ms exceeded while waiting on the predicate
at pages/mailPages.ts:38
36 | }
37 | await email.click();
> 38 | }, `Failed to find email: ${subject} (${index})`).toPass({timeout: 10_000}); // This auto-retries on a reasonable schedule
| ^
39 | return await this.getEmailPage().waitFor();
40 | }
41 | }
at MailinatorInboxPage.openEmail (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/mailPages.ts:38:55)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/errorHandling.test.ts:155:37
|
frontend/tests/pages/mailPages.ts#L38
1) [chromium] › errorHandling.test.ts:141:1 › page load 403 on home page is redirected to login ──
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: Failed to find email: Forgot your password? (0)
Timeout 10000ms exceeded while waiting on the predicate
at pages/mailPages.ts:38
36 | }
37 | await email.click();
> 38 | }, `Failed to find email: ${subject} (${index})`).toPass({timeout: 10_000}); // This auto-retries on a reasonable schedule
| ^
39 | return await this.getEmailPage().waitFor();
40 | }
41 | }
at MailinatorInboxPage.openEmail (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/mailPages.ts:38:55)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/errorHandling.test.ts:155:37
|
frontend/tests/fixtures.ts#L37
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Error: Unexpected response status: 502. (undefined)
expect(received).toBeLessThan(expected)
Expected: < 500
Received: 502
at fixtures.ts:37
35 | context.addListener('response', response => {
36 | const traceparent = response.request().headers()['Traceparent'];
> 37 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(500);
| ^
38 | if (response.request().isNavigationRequest()) {
39 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(400);
40 | }
at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:37:106)
|
frontend/tests/fixtures.ts#L37
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Error: Unexpected response status: 503. (undefined)
expect(received).toBeLessThan(expected)
Expected: < 500
Received: 503
at fixtures.ts:37
35 | context.addListener('response', response => {
36 | const traceparent = response.request().headers()['Traceparent'];
> 37 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(500);
| ^
38 | if (response.request().isNavigationRequest()) {
39 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(400);
40 | }
at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:37:106)
|
frontend/tests/pages/basePage.ts#L53
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Error: Timed out 10000ms waiting for expect(locator).toHaveURL(expected)
Locator: locator(':root')
Expected pattern: /\/($|\?|#)/
Received string: "https://staging.languagedepot.org/resetPassword"
Call log:
- expect.toHaveURL with timeout 10000ms
- waiting for locator(':root')
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/resetPassword"
at pages/basePage.ts:53
51 | } else {
52 | // first use expect() so we get a good error message
> 53 | await expect(this.page).toHaveURL(this.urlPattern, {timeout: 10_000});
| ^
54 | // still wait to ensure we reach the state we expect
55 | await this.page.waitForURL(this.urlPattern, {waitUntil: 'load'});
56 | }
at UserDashboardPage.waitFor (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:53:31)
at ResetPasswordPage.submit (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/resetPasswordPage.ts:16:51)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:101:3
|
frontend/tests/utils/authHelpers.ts#L16
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Error: expect(received).toBeTruthy()
Received: false
at utils/authHelpers.ts:16
14 | }
15 | const response = await api.post(`${serverBaseUrl}/api/login`, {data: loginData});
> 16 | expect(response.ok()).toBeTruthy();
| ^
17 | }
18 |
19 | export async function logout(page: Page): Promise<LoginPage> {
at loginAs (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:16:25)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:84:5)
|
frontend/tests/fixtures.ts#L37
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: Unexpected response status: 503. (undefined)
expect(received).toBeLessThan(expected)
Expected: < 500
Received: 503
at fixtures.ts:37
35 | context.addListener('response', response => {
36 | const traceparent = response.request().headers()['Traceparent'];
> 37 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(500);
| ^
38 | if (response.request().isNavigationRequest()) {
39 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(400);
40 | }
at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:37:106)
|
frontend/tests/fixtures.ts#L37
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: Unexpected response status: 503. (undefined)
expect(received).toBeLessThan(expected)
Expected: < 500
Received: 503
at fixtures.ts:37
35 | context.addListener('response', response => {
36 | const traceparent = response.request().headers()['Traceparent'];
> 37 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(500);
| ^
38 | if (response.request().isNavigationRequest()) {
39 | expect.soft(response.status(), `Unexpected response status: ${response.status()}. (${traceparent})`).toBeLessThan(400);
40 | }
at BrowserContext.<anonymous> (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:37:106)
|
frontend/tests/pages/basePage.ts#L53
2) [firefox] › emailWorkflow.test.ts:78:1 › forgot password ──────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: Timed out 10000ms waiting for expect(locator).toHaveURL(expected)
Locator: locator(':root')
Expected pattern: /\/($|\?|#)/
Received string: "https://staging.languagedepot.org/register"
Call log:
- expect.toHaveURL with timeout 10000ms
- waiting for locator(':root')
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
- locator resolved to <html lang="en">…</html>
- unexpected value "https://staging.languagedepot.org/register"
at pages/basePage.ts:53
51 | } else {
52 | // first use expect() so we get a good error message
> 53 | await expect(this.page).toHaveURL(this.urlPattern, {timeout: 10_000});
| ^
54 | // still wait to ensure we reach the state we expect
55 | await this.page.waitForURL(this.urlPattern, {waitUntil: 'load'});
56 | }
at UserDashboardPage.waitFor (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:53:31)
at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:35:37)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:74:24)
|
frontend/tests/pages/mailPages.ts#L38
3) [chromium] › emailWorkflow.test.ts:28:1 › register, verify, update, verify email address ──────
Error: Failed to find email: Verify your e-mail address (0)
Timeout 10000ms exceeded while waiting on the predicate
at pages/mailPages.ts:38
36 | }
37 | await email.click();
> 38 | }, `Failed to find email: ${subject} (${index})`).toPass({timeout: 10_000}); // This auto-retries on a reasonable schedule
| ^
39 | return await this.getEmailPage().waitFor();
40 | }
41 | }
at MailinatorInboxPage.openEmail (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/mailPages.ts:38:55)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:63:31
|
backend/FixFwData/Program.cs#L1
The variable 'doNothing' is assigned but its value is never used
|
backend/MiniLcm/InMemoryApi.cs#L195
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.
|
backend/MiniLcm/InMemoryApi.cs#L214
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.
|
backend/LfClassicData/LfClassicLexboxApi.cs#L170
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.
|
backend/LcmCrdt/LcmCrdtKernel.cs#L4
The using directive for 'Crdt' appeared previously in this namespace
|
backend/LcmCrdt/CrdtLexboxApi.cs#L13
Parameter 'timeProvider' is unread.
|
backend/LocalWebApp/BackgroundSyncService.cs#L9
Parameter 'serviceProvider' is unread.
|
backend/LocalWebApp/CrdtHttpSyncService.cs#L58
Parameter 'originDomain' is unread.
|
backend/LocalWebApp/LexboxApiHub.cs#L16
Parameter 'jsonOptions' is unread.
|
backend/LocalWebApp/Routes/HistoryRoutes.cs#L44
The result of the expression is always 'true' since a value of type 'Guid' is never equal to 'null' of type 'Guid?'
|
|
backend/LfClassicData/LfClassicLexboxApi.cs#L170
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.
|
backend/LcmCrdt/LcmCrdtKernel.cs#L4
The using directive for 'Crdt' appeared previously in this namespace
|
backend/LcmCrdt/CrdtLexboxApi.cs#L13
Parameter 'timeProvider' is unread.
|
backend/LexBoxApi/Services/UserService.cs#L7
Parameter 'lexAuthService' is unread.
|
backend/LexBoxApi/Jobs/CleanupResetBackupJob.cs#L7
Parameter 'hgService' is unread.
|
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'
|
backend/LexBoxApi/Services/HgService.cs#L308
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.
|
backend/LexBoxApi/Controllers/IntegrationController.cs#L62
Action method returns undeclared status code '404'
|
backend/LexBoxApi/GraphQL/CustomTypes/IsLanguageForgeProjectDataLoader.cs#L27
Method referencing lambda parameter is not supported LINQ expression. (https://www.mongodb.com/docs/mongodb-analyzer/current/rules/#MALinq2001)
|
frontend/[firefox] › errorHandling.test.ts#L1
frontend/[firefox] › errorHandling.test.ts took 38.0s
|
2 failed
[chromium] › errorHandling.test.ts:141:1 › page load 403 on home page is redirected to login ───
[firefox] › emailWorkflow.test.ts:78:1 › forgot password ───────────────────────────────────────
5 flaky
[chromium] › emailWorkflow.test.ts:28:1 › register, verify, update, verify email address ───────
[chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file ────────────────────
[chromium] › userPage.test.ts:31:1 › can reset password ────────────────────────────────────────
[firefox] › resetProject.test.ts:20:1 › reset project and upload .zip file ─────────────────────
[firefox] › userPage.test.ts:31:1 › can reset password ─────────────────────────────────────────
53 passed (7.6m)
|
This job failed
Loading