Skip to content

Run playwright tests in our gha integration test workflow #1419

Run playwright tests in our gha integration test workflow

Run playwright tests in our gha integration test workflow #1419

Triggered via pull request November 15, 2024 15:42
Status Failure
Total duration 14m 1s
Artifacts 2

develop-api.yaml

on: pull_request
Set Version
0s
Set Version
Build API  /  publish-api
3m 22s
Build API / publish-api
GHA integration tests  /  start-cluster
3m 7s
GHA integration tests / start-cluster
Deploy API  /  deploy
Deploy API / deploy
GHA integration tests  /  dotnet-test
4m 38s
GHA integration tests / dotnet-test
GHA integration tests  /  playwright-test
6m 43s
GHA integration tests / playwright-test
Matrix: Deploy API / verify-published
Waiting for pending jobs
GHA integration tests  /  upload-logs
1s
GHA integration tests / upload-logs
Fit to window
Zoom out
Zoom in

Annotations

22 errors, 20 warnings, and 1 notice
GHA integration tests / start-cluster
Process completed with exit code 1.
GHA integration tests / start-cluster
Process completed with exit code 1.
Testing.ApiTests.OrgPermissionTests.ManagersSeeAllProjects: backend/Testing/ApiTests/OrgPermissionTests.cs#L247
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.AuthTests.ClearingCookiesWorks: backend/Testing/ApiTests/AuthTests.cs#L99
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.SyncReverseProxy.ResumableTests.IsAvailableJwtInBasicAuth(user: "admin"): backend/Testing/SyncReverseProxy/ResumableTests.cs#L42
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.GqlMiddlewareTests.CanGetProjectThatWasJustAddedToUser
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.GqlMiddlewareTests.CanTriggerMultipleInstancesOfMiddlewareThatAccessDbSimultaneously
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.SyncReverseProxy.ResumableTests.IsAvailableJwtInBasicAuth(user: "manager"): backend/Testing/SyncReverseProxy/ResumableTests.cs#L42
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.OrgPermissionTests.MembersSeePublicAndTheirProjects: backend/Testing/ApiTests/OrgPermissionTests.cs#L237
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.AuthTests.JwtWithInvalidSignatureFailsAuth: backend/Testing/ApiTests/AuthTests.cs#L121
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.ApiTests.ResetPojectRaceCondition.SimultaneousResetsDontResultIn404s
System.Net.Http.HttpRequestException : Connection refused (localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
Testing.SyncReverseProxy.ResumableTests.WithBadNotValidProject: backend/Testing/SyncReverseProxy/ResumableTests.cs#L93
System.Net.Http.HttpRequestException : Connection refused (resumable.localhost:6579) ---- System.Net.Sockets.SocketException : Connection refused
[chromium] › adminPage.test.ts:6:1 › can navigate to project page: frontend/tests/pages/basePage.ts#L34
1) [chromium] › adminPage.test.ts:6:1 › can navigate to project page ───────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/login Call log: - navigating to "http://localhost:6579/login", 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 LoginPage.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/adminPage.test.ts:7:47
[chromium] › adminPage.test.ts:6:1 › can navigate to project page: frontend/tests/pages/basePage.ts#L34
1) [chromium] › adminPage.test.ts:6:1 › can navigate to project page ───────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/login Call log: - navigating to "http://localhost:6579/login", 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 LoginPage.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/adminPage.test.ts:7:47
[chromium] › button.test.ts:3:1 › Playwright doesn't click on loading buttons: frontend/tests/button.test.ts#L4
2) [chromium] › button.test.ts:3:1 › Playwright doesn't click on loading buttons ───────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/sandbox Call log: - navigating to "http://localhost:6579/sandbox", waiting until "load" 2 | 3 | test('Playwright doesn\'t click on loading buttons', async ({ page }) => { > 4 | await page.goto('/sandbox'); | ^ 5 | await page.click('text=Primary Button'); 6 | await page.getByText('Loading Button', { exact: true }).waitFor(); 7 | test.fail(true); // everything prior to this should succeed at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/button.test.ts:4:14
[chromium] › button.test.ts:3:1 › Playwright doesn't click on loading buttons: frontend/tests/button.test.ts#L4
2) [chromium] › button.test.ts:3:1 › Playwright doesn't click on loading buttons ───────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/sandbox Call log: - navigating to "http://localhost:6579/sandbox", waiting until "load" 2 | 3 | test('Playwright doesn\'t click on loading buttons', async ({ page }) => { > 4 | await page.goto('/sandbox'); | ^ 5 | await page.click('text=Primary Button'); 6 | await page.getByText('Loading Button', { exact: true }).waitFor(); 7 | test.fail(true); // everything prior to this should succeed at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/button.test.ts:4:14
[chromium] › emailWorkflow.test.ts:27:1 › register: frontend/tests/pages/basePage.ts#L34
3) [chromium] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/register Call log: - navigating to "http://localhost:6579/register", 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 RegisterPage.goto (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:34:38) at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:32:53) at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:30)
[chromium] › emailWorkflow.test.ts:27:1 › register: frontend/tests/pages/basePage.ts#L34
3) [chromium] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/register Call log: - navigating to "http://localhost:6579/register", 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 RegisterPage.goto (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:34:38) at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:32:53) at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:30)
[chromium] › emailWorkflow.test.ts:74:1 › forgot password: frontend/tests/pages/basePage.ts#L34
4) [chromium] › emailWorkflow.test.ts:74:1 › forgot password ───────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/register Call log: - navigating to "http://localhost:6579/register", 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 RegisterPage.goto (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:34:38) at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:32:53) at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:30)
[chromium] › emailWorkflow.test.ts:74:1 › forgot password: frontend/tests/pages/basePage.ts#L34
4) [chromium] › emailWorkflow.test.ts:74:1 › forgot password ───────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:6579/register Call log: - navigating to "http://localhost:6579/register", 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 RegisterPage.goto (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/pages/basePage.ts:34:38) at registerUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/utils/authHelpers.ts:32:53) at Object.tempUser (/home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/tests/fixtures.ts:101:30)
[chromium] › emailWorkflow.test.ts:110:1 › register via new-user invitation email: frontend/apiRequestContext.post: connect ECONNREFUSED :#L1
5) [chromium] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ───────────── Error: apiRequestContext.post: connect ECONNREFUSED ::1:6579 Call log: - → POST http://localhost:6579/api/login - user-agent: Playwright Chrome - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 71 at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/apiRequestContext.post: connect ECONNREFUSED ::1:6579 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:113:9
[chromium] › emailWorkflow.test.ts:110:1 › register via new-user invitation email: frontend/apiRequestContext.post: connect ECONNREFUSED :#L1
5) [chromium] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ───────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: apiRequestContext.post: connect ECONNREFUSED ::1:6579 Call log: - → POST http://localhost:6579/api/login - user-agent: Playwright Chrome - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 71 at /home/runner/work/languageforge-lexbox/languageforge-lexbox/frontend/apiRequestContext.post: connect ECONNREFUSED ::1:6579 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:113:9
Build API / publish-api: backend/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
Build API / publish-api: backend/LexBoxApi/Services/UserService.cs#L10
Parameter 'lexAuthService' is unread.
Build API / publish-api: backend/LexBoxApi/Hub/CrdtProjectChangeHub.cs#L8
Parameter 'loggedInContext' is unread.
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/Services/HgService.cs#L448
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: 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)
Build API / publish-api: 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.
Build API / publish-api: backend/LexData/SeedingData.cs#L18
Parameter 'logger' is unread.
Build API / publish-api: backend/LexBoxApi/Services/UserService.cs#L10
Parameter 'lexAuthService' is unread.
Build API / publish-api
Parameter 'logger' is unread.
Build API / publish-api
Parameter 'lexAuthService' is unread.
Build API / publish-api
Parameter 'lexAuthService' is unread.
Build API / publish-api
Parameter 'lexBoxDbContext' is unread.
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
Parameter 'loggedInContext' is unread.
Build API / publish-api
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
Action method returns undeclared status code '404'
Build API / publish-api
Method referencing lambda parameter is not supported LINQ expression. (https://www.mongodb.com/docs/mongodb-analyzer/current/rules/#MALinq2001)
Build API / publish-api
Parameter 'logger' is unread.
🎭 Playwright Run Summary
64 failed [chromium] › adminPage.test.ts:6:1 › can navigate to project page ────────────────────────────── [chromium] › button.test.ts:3:1 › Playwright doesn't click on loading buttons ────────────────── [chromium] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ─────── [chromium] › emailWorkflow.test.ts:74:1 › forgot password ────────────────────────────────────── [chromium] › emailWorkflow.test.ts:110:1 › register via new-user invitation email ────────────── [chromium] › errorHandling.test.ts:13:1 › can catch 500 errors from goto in same tab ─────────── [chromium] › errorHandling.test.ts:23:1 › can catch 500 errors from goto in new tab ──────────── [chromium] › errorHandling.test.ts:32:1 › can catch 500 errors in page load ──────────────────── [chromium] › errorHandling.test.ts:39:1 › page load 500 lands on new page ────────────────────── [chromium] › errorHandling.test.ts:49:1 › catch fetch 500 and error dialog ───────────────────── [chromium] › errorHandling.test.ts:60:1 › client-side gql 500 does not break the application ─── [chromium] › errorHandling.test.ts:74:1 › server-side gql 500 does not kill the server ───────── [chromium] › errorHandling.test.ts:83:1 › server page load 401 is redirected to login ────────── [chromium] › errorHandling.test.ts:90:1 › client page load 401 is redirected to login ────────── [chromium] › errorHandling.test.ts:105:1 › can catch 403 errors from goto in same tab ────────── [chromium] › errorHandling.test.ts:115:1 › can catch 403 errors from goto in new tab ─────────── [chromium] › errorHandling.test.ts:124:1 › page load 403 is redirected to home ───────────────── [chromium] › errorHandling.test.ts:131:1 › page load 403 in new tab is redirected to home ────── [chromium] › errorHandling.test.ts:140:1 › page load 403 on home page is redirected to login ─── [chromium] › errorHandling.test.ts:174:1 › node survives corrupt jwt ─────────────────────────── [chromium] › i18n.test.ts:6:1 › server-side locale does not leak ─────────────────────────────── [chromium] › i18n.test.ts:30:1 › late subscription to locale works ───────────────────────────── [chromium] › loginPage.test.ts:7:1 › can log in ──────────────────────────────────────────────── [chromium] › loginPage.test.ts:14:1 › show error without username ────────────────────────────── [chromium] › loginPage.test.ts:23:1 › can log in after error ─────────────────────────────────── [chromium] › loginPage.test.ts:40:1 › after login user is sent to original page ──────────────── [chromium] › managerPage.test.ts:6:1 › display dashboard, then project page ──────────────────── [chromium] › recreateProject.test.ts:10:1 › delete and recreate project ──────────────────────── [chromium] › resetProject.test.ts:20:1 › reset project and upload .zip file ──────────────────── [chromium] › userPage.test.ts:10:1 › can update account info ─────────────────────────────────── [chromium] › userPage.test.ts:21:1 › display form errors on invalid data ─────────────────────── [chromium] › userPage.test.ts:30:1 › can reset password ──────────────────────────────────────── [firefox] › adminPage.test.ts:6:1 › can navigate to project page ─────────────────────────────── [firefox] › button.test.ts:3:1 › Playwright doesn't click on loading buttons ─────────────────── [firefox] › emailWorkflow.test.ts:27:1 › register, verify, update, verify email address ──────── [firefox] › emailWorkflow.test.ts:74:1 › forgot password ─────────────────────────────────────── [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 ›

Artifacts

Produced during runtime
Name Size
dotnet-unit-test-results
3.53 KB
playwright-traces
6.6 MB