Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit00fcf36

Browse files
authored
test: add an e2e audit logs test (#12868)
1 parentcf2d2a9 commit00fcf36

14 files changed

+90
-11
lines changed

‎scripts/lib.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ if [[ "${CODER_LIBSH_NO_CHECK_DEPENDENCIES:-}" != *t* ]]; then
190190
if isdarwin;then
191191
log"On darwin:"
192192
log"- brew install bash"
193+
# shellcheck disable=SC2016
194+
log'- Add "$(brew --prefix bash)/bin" to your PATH'
193195
log"- Restart your terminal"
194196
fi
195197
log
@@ -203,7 +205,7 @@ if [[ "${CODER_LIBSH_NO_CHECK_DEPENDENCIES:-}" != *t* ]]; then
203205
log"On darwin:"
204206
log"- brew install gnu-getopt"
205207
# shellcheck disable=SC2016
206-
log'- Add "$(brew --prefix)/opt/gnu-getopt/bin" to your PATH'
208+
log'- Add "$(brew --prefixgnu-getopt)/bin" to your PATH'
207209
log"- Restart your terminal"
208210
fi
209211
log
@@ -226,7 +228,7 @@ if [[ "${CODER_LIBSH_NO_CHECK_DEPENDENCIES:-}" != *t* ]]; then
226228
log"On darwin:"
227229
log"- brew install make"
228230
# shellcheck disable=SC2016
229-
log'- Add "$(brew --prefix)/opt/make/libexec/gnubin" to your PATH (you should Google this first)'
231+
log'- Add "$(brew --prefix make)/libexec/gnubin" to your PATH'
230232
log"- Restart your terminal"
231233
fi
232234
log

‎site/e2e/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ cd site
1212
# Build the frontend assets. If you are actively changing
1313
# the site to debug an issue, add `--watch`.
1414
pnpm build
15+
# Alternatively, build with debug info and source maps:
16+
NODE_ENV=development pnpm vite build --mode=development
1517
# Install the browsers to `~/.cache/ms-playwright`.
1618
pnpm playwright:install
1719
# Run E2E tests. You can see the configuration of the server

‎site/e2e/tests/app.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
}from"../helpers";
1111
import{beforeCoderTest}from"../hooks";
1212

13-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
13+
test.beforeEach(({ page})=>beforeCoderTest(page));
1414

1515
test("app",async({ context, page})=>{
1616
constappContent="Hello World";

‎site/e2e/tests/auditLogs.spec.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import{expect,test}from"@playwright/test";
2+
import{
3+
createTemplate,
4+
createWorkspace,
5+
requiresEnterpriseLicense,
6+
}from"../helpers";
7+
import{beforeCoderTest}from"../hooks";
8+
9+
test.beforeEach(({ page})=>beforeCoderTest(page));
10+
11+
test("inspecting and filtering audit logs",async({ page})=>{
12+
requiresEnterpriseLicense();
13+
14+
constuserName="admin";
15+
// Do some stuff that should show up in the audit logs
16+
consttemplateName=awaitcreateTemplate(page);
17+
constworkspaceName=awaitcreateWorkspace(page,templateName);
18+
19+
// Go to the audit history
20+
awaitpage.goto("/audit");
21+
22+
// Make sure those things we did all actually show up
23+
awaitexpect(page.getByText(`${userName} logged in`)).toBeVisible();
24+
awaitexpect(
25+
page.getByText(`${userName} created template${templateName}`),
26+
).toBeVisible();
27+
awaitexpect(
28+
page.getByText(`${userName} created workspace${workspaceName}`),
29+
).toBeVisible();
30+
awaitexpect(
31+
page.getByText(`${userName} started workspace${workspaceName}`),
32+
).toBeVisible();
33+
34+
// Make sure we can inspect the details of the log item
35+
constcreatedWorkspace=page.locator(".MuiTableRow-root",{
36+
hasText:`${userName} created workspace${workspaceName}`,
37+
});
38+
awaitcreatedWorkspace.getByLabel("open-dropdown").click();
39+
awaitexpect(
40+
createdWorkspace.getByText(`automatic_updates: "never"`),
41+
).toBeVisible();
42+
awaitexpect(
43+
createdWorkspace.getByText(`name: "${workspaceName}"`),
44+
).toBeVisible();
45+
46+
conststartedWorkspaceMessage=`${userName} started workspace${workspaceName}`;
47+
constloginMessage=`${userName} logged in`;
48+
49+
// Filter by resource type
50+
awaitpage.getByText("All resource types").click();
51+
awaitpage.getByRole("menu").getByText("Workspace Build").click();
52+
// Our workspace build should be visible
53+
awaitexpect(page.getByText(startedWorkspaceMessage)).toBeVisible();
54+
// Logins should no longer be visible
55+
awaitexpect(page.getByText(loginMessage)).not.toBeVisible();
56+
57+
// Clear filters, everything should be visible again
58+
awaitpage.getByLabel("Clear filter").click();
59+
awaitexpect(page.getByText(startedWorkspaceMessage)).toBeVisible();
60+
awaitexpect(page.getByText(loginMessage)).toBeVisible();
61+
62+
// Filter by action type
63+
awaitpage.getByText("All actions").click();
64+
awaitpage.getByRole("menu").getByText("Login").click();
65+
// Logins should be visible
66+
awaitexpect(page.getByText(loginMessage)).toBeVisible();
67+
// Our workspace build should no longer be visible
68+
awaitexpect(page.getByText(startedWorkspaceMessage)).not.toBeVisible();
69+
});

‎site/e2e/tests/createWorkspace.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
}from"../parameters";
1919
importtype{RichParameter}from"../provisionerGenerated";
2020

21-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
21+
test.beforeEach(({ page})=>beforeCoderTest(page));
2222

2323
test("create workspace",async({ page})=>{
2424
consttemplate=awaitcreateTemplate(page,{

‎site/e2e/tests/externalAuth.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { gitAuth } from "../constants";
55
import{Awaiter,createServer}from"../helpers";
66
import{beforeCoderTest}from"../hooks";
77

8-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
8+
test.beforeEach(({ page})=>beforeCoderTest(page));
99

1010
// Ensures that a Git auth provider with the device flow functions and completes!
1111
test("external auth device",async({ page})=>{

‎site/e2e/tests/listTemplates.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import{test,expect}from"@playwright/test";
22
import{beforeCoderTest}from"../hooks";
33

4-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
4+
test.beforeEach(({ page})=>beforeCoderTest(page));
55

66
test("list templates",async({ page, baseURL})=>{
77
awaitpage.goto(`${baseURL}/templates`,{waitUntil:"domcontentloaded"});

‎site/e2e/tests/outdatedAgent.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { beforeCoderTest } from "../hooks";
1414
// we no longer support versions prior to single tailnet: https://github.com/coder/coder/commit/d7cbdbd9c64ad26821e6b35834c59ecf85dcd9d4
1515
constagentVersion="v0.27.0";
1616

17-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
17+
test.beforeEach(({ page})=>beforeCoderTest(page));
1818

1919
test("ssh with agent "+agentVersion,async({ page})=>{
2020
test.setTimeout(40_000);// This is a slow test, 20s may not be enough on Mac.

‎site/e2e/tests/outdatedCLI.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { beforeCoderTest } from "../hooks";
1414
// we no longer support versions prior to single tailnet: https://github.com/coder/coder/commit/d7cbdbd9c64ad26821e6b35834c59ecf85dcd9d4
1515
constclientVersion="v0.27.0";
1616

17-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
17+
test.beforeEach(({ page})=>beforeCoderTest(page));
1818

1919
test("ssh with client "+clientVersion,async({ page})=>{
2020
consttoken=randomUUID();

‎site/e2e/tests/restartWorkspace.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { beforeCoderTest } from "../hooks";
1010
import{firstBuildOption,secondBuildOption}from"../parameters";
1111
importtype{RichParameter}from"../provisionerGenerated";
1212

13-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
13+
test.beforeEach(({ page})=>beforeCoderTest(page));
1414

1515
test("restart workspace with ephemeral parameters",async({ page})=>{
1616
constrichParameters:RichParameter[]=[firstBuildOption,secondBuildOption];

‎site/e2e/tests/startWorkspace.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ import {
77
stopWorkspace,
88
verifyParameters,
99
}from"../helpers";
10+
import{beforeCoderTest}from"../hooks";
1011
import{firstBuildOption,secondBuildOption}from"../parameters";
1112
importtype{RichParameter}from"../provisionerGenerated";
1213

14+
test.beforeEach(({ page})=>beforeCoderTest(page));
15+
1316
test("start workspace with ephemeral parameters",async({ page})=>{
1417
constrichParameters:RichParameter[]=[firstBuildOption,secondBuildOption];
1518
consttemplate=awaitcreateTemplate(

‎site/e2e/tests/updateTemplate.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import {
66
requiresEnterpriseLicense,
77
updateTemplateSettings,
88
}from"../helpers";
9+
import{beforeCoderTest}from"../hooks";
10+
11+
test.beforeEach(({ page})=>beforeCoderTest(page));
912

1013
test("template update with new name redirects on successful submit",async({
1114
page,

‎site/e2e/tests/updateWorkspace.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
}from"../parameters";
1919
importtype{RichParameter}from"../provisionerGenerated";
2020

21-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
21+
test.beforeEach(({ page})=>beforeCoderTest(page));
2222

2323
test("update workspace, new optional, immutable parameter added",async({
2424
page,

‎site/e2e/tests/webTerminal.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
}from"../helpers";
1010
import{beforeCoderTest}from"../hooks";
1111

12-
test.beforeEach(async({ page})=>awaitbeforeCoderTest(page));
12+
test.beforeEach(({ page})=>beforeCoderTest(page));
1313

1414
test("web terminal",async({ context, page})=>{
1515
consttoken=randomUUID();

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp