Use Svelte 5 without migration #1502
develop-api.yaml
on: pull_request
Set Version
0s
GHA integration tests
/
execute
55m 49s
Matrix: Deploy API / verify-published
Waiting for pending jobs
Annotations
23 errors, 35 warnings, and 1 notice
frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte#L25
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/components/Users/CreateUserModal.svelte#L35
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/components/Users/CreateUserModal.svelte#L39
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/forms/Checkbox.svelte#L27
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/forms/FormError.svelte#L15
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/forms/FormField.svelte#L27
[@typescript-eslint/no-unused-expressions] Expected an assignment or function call and instead saw an expression.
|
frontend/src/lib/forms/FormField.svelte#L44
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/forms/RadioButtonGroup.svelte#L48
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/lib/i18n/index.ts#L149
[@typescript-eslint/no-base-to-string] 'scope' may use Object's default stringification format ('[object Object]') when stringified.
|
frontend/src/routes/(authenticated)/project/[project_code]/OpenInFlexModal.svelte#L24
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
frontend/src/routes/(authenticated)/project/create/+page.svelte#L293
[@typescript-eslint/no-explicit-any] Unexpected any. Specify a different type.
|
[firefox] › draftProject.test.ts:13:1 › Request and approve draft project:
frontend/tests/utils/authHelpers.ts#L25
1) [firefox] › draftProject.test.ts:13:1 › Request and approve draft project ─────────────────────
Error: apiRequestContext.get: Request timed out after 5000ms
Call log:
- → GET http://localhost:6579/api/user/currentUser
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- cookie: .LexBoxAuth=***
at utils/authHelpers.ts:25
23 |
24 | export async function getCurrentUserId(api: APIRequestContext): Promise<UUID> {
> 25 | const response = await api.get(`${serverBaseUrl}/api/user/currentUser`);
| ^
26 | const user = await response.json() as {sub: UUID};
27 | expect(user).not.toBeNull();
28 | return user.sub;
at getCurrentUserId (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:25:30)
at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:36:24)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:24)
|
[firefox] › draftProject.test.ts:13:1 › Request and approve draft project:
frontend/tests/utils/authHelpers.ts#L15
1) [firefox] › draftProject.test.ts:13:1 › Request and approve draft project ─────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: apiRequestContext.post: Request timed out after 5000ms
Call log:
- → POST http://localhost:6579/api/login
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- content-type: application/json
- content-length: 158
- cookie: .LexBoxAuth=***
at utils/authHelpers.ts:15
13 | preHashedPassword: false,
14 | }
> 15 | const response = await api.post(`${serverBaseUrl}/api/login`, {data: loginData});
| ^
16 | expect(response.ok()).toBeTruthy();
17 | }
18 |
at loginAs (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:15:30)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/draftProject.test.ts:15:11
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/draftProject.test.ts:14:40
|
[firefox] › draftProject.test.ts:13:1 › Request and approve draft project:
frontend/tests/utils/gqlHelpers.ts#L16
1) [firefox] › draftProject.test.ts:13:1 › Request and approve draft project ─────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: apiRequestContext.post: Request timed out after 5000ms
Call log:
- → POST http://localhost:6579/api/graphql
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- content-type: application/json
- content-length: 274
- cookie: .LexBoxAuth=***
at utils/gqlHelpers.ts:16
14 |
15 | export async function executeGql<T>(api: APIRequestContext, gql: string, expectError = false): Promise<T> {
> 16 | const response = await api.post(`${serverBaseUrl}/api/graphql`, {data: {query: gql}});
| ^
17 | await expect(response, `code was ${response.status()} (${response.statusText()})`).toBeOK();
18 | const json = await response.json() as GqlResult;
19 | expect(json, `for query ${gql}`).not.toBeNull();
at executeGql (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/gqlHelpers.ts:16:30)
at deleteUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:41:10)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:112:11)
|
[firefox] › emailWorkflow.test.ts:27:1 › register:
frontend/tests/utils/authHelpers.ts#L15
2) [firefox] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ───────
Error: apiRequestContext.post: Request timed out after 5000ms
Call log:
- → POST http://localhost:6579/api/login
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- content-type: application/json
- content-length: 158
- cookie: .LexBoxAuth=***
at utils/authHelpers.ts:15
13 | preHashedPassword: false,
14 | }
> 15 | const response = await api.post(`${serverBaseUrl}/api/login`, {data: loginData});
| ^
16 | expect(response.ok()).toBeTruthy();
17 | }
18 |
at loginAs (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:15:30)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:29:9
|
[firefox] › emailWorkflow.test.ts:27:1 › register:
frontend/tests/utils/gqlHelpers.ts#L16
2) [firefox] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ───────
Error: apiRequestContext.post: Request timed out after 5000ms
Call log:
- → POST http://localhost:6579/api/graphql
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- content-type: application/json
- content-length: 274
- cookie: .LexBoxAuth=***
at utils/gqlHelpers.ts:16
14 |
15 | export async function executeGql<T>(api: APIRequestContext, gql: string, expectError = false): Promise<T> {
> 16 | const response = await api.post(`${serverBaseUrl}/api/graphql`, {data: {query: gql}});
| ^
17 | await expect(response, `code was ${response.status()} (${response.statusText()})`).toBeOK();
18 | const json = await response.json() as GqlResult;
19 | expect(json, `for query ${gql}`).not.toBeNull();
at executeGql (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/gqlHelpers.ts:16:30)
at deleteUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:41:10)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:112:11)
|
[firefox] › emailWorkflow.test.ts:27:1 › register:
frontend/tests/utils/authHelpers.ts#L25
2) [firefox] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ───────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: apiRequestContext.get: Request timed out after 5000ms
Call log:
- → GET http://localhost:6579/api/user/currentUser
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- cookie: .LexBoxAuth=***
at utils/authHelpers.ts:25
23 |
24 | export async function getCurrentUserId(api: APIRequestContext): Promise<UUID> {
> 25 | const response = await api.get(`${serverBaseUrl}/api/user/currentUser`);
| ^
26 | const user = await response.json() as {sub: UUID};
27 | expect(user).not.toBeNull();
28 | return user.sub;
at getCurrentUserId (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:25:30)
at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:36:24)
at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:24)
|
[firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email:
frontend/tests/utils/authHelpers.ts#L25
3) [firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ──────────────
Error: apiRequestContext.get: Request timed out after 5000ms
Call log:
- → GET http://localhost:6579/api/user/currentUser
- user-agent: Playwright Firefox
- accept: */*
- accept-encoding: gzip,deflate,br
- cookie: .LexBoxAuth=***
at utils/authHelpers.ts:25
23 |
24 | export async function getCurrentUserId(api: APIRequestContext): Promise<UUID> {
> 25 | const response = await api.get(`${serverBaseUrl}/api/user/currentUser`);
| ^
26 | const user = await response.json() as {sub: UUID};
27 | expect(user).not.toBeNull();
28 | return user.sub;
at getCurrentUserId (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:25:30)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:149:24
|
[firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email:
frontend/tests/emailWorkflow.test.ts#L1
3) [firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ──────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 80000ms exceeded.
|
[firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email:
frontend/tests/pages/basePage.ts#L34
3) [firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ──────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: Test timeout of 80000ms exceeded.
Call log:
- navigating to "http://localhost:6579/admin", waiting until "load"
at pages/basePage.ts:34
32 | }
33 |
> 34 | const response = await this.page.goto(this.url + (urlEnd ?? ''));
| ^
35 | // response is null if same URL, but different hash - and that's okay
36 | if (response) {
37 | if (expectErrorResponse) {
at AdminDashboardPage.goto (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:34:38)
at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/emailWorkflow.test.ts:114:56
|
[firefox] › errorHandling.test.ts:13:1 › can catch 500 errors from goto in same tab:
frontend/tests/errorHandling.test.ts#L1
4) [firefox] › errorHandling.test.ts:13:1 › can catch 500 errors from goto in same tab ───────────
Test timeout of 40000ms exceeded.
|
GHA integration tests / execute
Process completed with exit code 1.
|
GHA integration tests / execute
Process completed with exit code 1.
|
Set Version
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
Build API / publish-api
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
Build API / publish-api:
backend/FwLite/MiniLcm/SyncHelpers/WritingSystemSync.cs#L21
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.
|
Build API / publish-api:
backend/SyncReverseProxy/ProxyKernel.cs#L121
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api:
backend/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
|
Build API / publish-api:
backend/LexBoxApi/Auth/LoggedInContext.cs#L24
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api:
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'
|
Build API / publish-api:
backend/LexBoxApi/Hub/CrdtProjectChangeHub.cs#L8
Parameter 'loggedInContext' is unread.
|
Build API / publish-api:
backend/LexBoxApi/Jobs/LexJob.cs#L45
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api:
backend/LexBoxApi/Services/EmailService.cs#L238
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api:
backend/LexBoxApi/Services/HgService.cs#L459
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.
|
Build API / publish-api:
backend/LexBoxApi/Controllers/IntegrationController.cs#L62
Action method returns undeclared status code '404'
|
Build API / publish-api
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.
|
Build API / publish-api
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api
Parameter 'logger' is unread.
|
Build API / publish-api
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api
Parameter 'loggedInContext' is unread.
|
Build API / publish-api
Parameter 'lexAuthService' is unread.
|
Build API / publish-api
Parameter 'lexBoxDbContext' is unread.
|
Build API / publish-api
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Build API / publish-api
'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'
|
Build API / publish-api
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
Slow Test:
frontend/[firefox] › button.test.ts#L1
frontend/[firefox] › button.test.ts took 34.2s
|
Slow Test:
frontend/[chromium] › errorHandling.test.ts#L1
frontend/[chromium] › errorHandling.test.ts took 20.7s
|
Slow Test:
frontend/[chromium] › emailWorkflow.test.ts#L1
frontend/[chromium] › emailWorkflow.test.ts took 18.0s
|
GHA integration tests / execute:
backend/FwLite/MiniLcm/SyncHelpers/WritingSystemSync.cs#L21
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.
|
GHA integration tests / execute:
backend/SyncReverseProxy/ProxyKernel.cs#L121
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
GHA integration tests / execute:
backend/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
|
GHA integration tests / execute:
backend/LexBoxApi/Hub/CrdtProjectChangeHub.cs#L8
Parameter 'loggedInContext' is unread.
|
GHA integration tests / execute:
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'
|
GHA integration tests / execute:
backend/LexBoxApi/Jobs/LexJob.cs#L45
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
GHA integration tests / execute:
backend/LexBoxApi/Auth/LoggedInContext.cs#L24
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
GHA integration tests / execute:
backend/LexBoxApi/Services/EmailService.cs#L238
'ActivityExtensions.RecordException(Activity?, Exception?)' is obsolete: 'Call Activity.AddException instead this method will be removed in a future version.'
|
GHA integration tests / execute:
backend/LexBoxApi/Services/HgService.cs#L459
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.
|
GHA integration tests / execute:
backend/LexBoxApi/Controllers/IntegrationController.cs#L62
Action method returns undeclared status code '404'
|
🎭 Playwright Run Summary
30 failed
[firefox] › draftProject.test.ts:13:1 › Request and approve draft project ──────────────────────
[firefox] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ────────
[firefox] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ───────────────
[firefox] › errorHandling.test.ts:13:1 › can catch 500 errors from goto in same tab ────────────
[firefox] › errorHandling.test.ts:23:1 › can catch 500 errors from goto in new tab ─────────────
[firefox] › errorHandling.test.ts:32:1 › can catch 500 errors in page load ─────────────────────
[firefox] › errorHandling.test.ts:39:1 › page load 500 lands on new page ───────────────────────
[firefox] › errorHandling.test.ts:49:1 › catch fetch 500 and error dialog ──────────────────────
[firefox] › errorHandling.test.ts:60:1 › client-side gql 500 does not break the application ────
[firefox] › errorHandling.test.ts:74:1 › server-side gql 500 does not kill the server ──────────
[firefox] › errorHandling.test.ts:83:1 › server page load 401 is redirected to login ───────────
[firefox] › errorHandling.test.ts:90:1 › client page load 401 is redirected to login ───────────
[firefox] › errorHandling.test.ts:105:1 › can catch 403 errors from goto in same tab ───────────
[firefox] › errorHandling.test.ts:115:1 › can catch 403 errors from goto in new tab ────────────
[firefox] › errorHandling.test.ts:124:1 › page load 403 is redirected to home ──────────────────
[firefox] › errorHandling.test.ts:131:1 › page load 403 in new tab is redirected to home ───────
[firefox] › errorHandling.test.ts:140:1 › page load 403 on home page is redirected to login ────
[firefox] › errorHandling.test.ts:174:1 › node survives corrupt jwt ────────────────────────────
[firefox] › i18n.test.ts:6:1 › server-side locale does not leak ────────────────────────────────
[firefox] › i18n.test.ts:30:1 › late subscription to locale works ──────────────────────────────
[firefox] › loginPage.test.ts:7:1 › can log in ─────────────────────────────────────────────────
[firefox] › loginPage.test.ts:14:1 › show error without username ───────────────────────────────
[firefox] › loginPage.test.ts:23:1 › can log in after error ────────────────────────────────────
[firefox] › loginPage.test.ts:40:1 › after login user is sent to original page ─────────────────
[firefox] › managerPage.test.ts:6:1 › display dashboard, then project page ─────────────────────
[firefox] › recreateProject.test.ts:10:1 › delete and recreate project ─────────────────────────
[firefox] › resetProject.test.ts:20:1 › reset project and upload .zip file ─────────────────────
[firefox] › userPage.test.ts:10:1 › can update account info ────────────────────────────────────
[firefox] › userPage.test.ts:21:1 › display form errors on invalid data ────────────────────────
[firefox] › userPage.test.ts:30:1 › can reset password ─────────────────────────────────────────
1 skipped
37 passed (37.4m)
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
dotnet-unit-test-results
|
3.82 KB |
|
k8s-logs
|
662 KB |
|
playwright-traces
|
112 MB |
|