chore: add eslint-plugin-playwright rules for e2e tests and fix errors (#2680)
* chore: 🤖 add eslint-plugin-playwright * chore: 🤖 add recommended eslint rules for playwright to config * test: 💍 remove describe blocks with async functions * fix errors related to playwright/valid-describe-callback rule * test: 💍 fix all auto-fixable playwright rules tests
This commit is contained in:
1 parent
6d4768272a
commit
4ca519ce62
17 files changed
+677
-67
No files matched your search
@@ -22,4 +22,10 @@ module.exports = {
|
||||
rules: {
|
||||
'no-empty-pattern': ['error', { allowObjectPatternsAsParameters: true }],
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
"files": ["admin/tests/**", "desktop/tests/**"],
|
||||
"extends": "plugin:playwright/recommended"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -19,7 +19,7 @@ test.beforeAll(async () => {
|
||||
await boundaryCli.checkBoundaryCli();
|
||||
});
|
||||
|
||||
test.describe('Aliases (Enterprise)', async () => {
|
||||
test.describe('Aliases (Enterprise)', () => {
|
||||
test('Set up alias from target details page @ent @aws @docker', async ({
|
||||
page,
|
||||
baseURL,
|
||||
|
||||
@@ -18,7 +18,7 @@ test.beforeAll(async () => {
|
||||
await boundaryCli.checkBoundaryCli();
|
||||
});
|
||||
|
||||
test.describe('Aliases', async () => {
|
||||
test.describe('Aliases', () => {
|
||||
test('Set up alias from target details page @ce @aws @docker', async ({
|
||||
page,
|
||||
baseURL,
|
||||
|
||||
@@ -218,14 +218,14 @@ test('Set up LDAP auth method @ce @ent @docker', async ({
|
||||
}
|
||||
}
|
||||
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: ldapAccountName })
|
||||
.locator('..')
|
||||
.getByRole('cell')
|
||||
.nth(fullNameIndex),
|
||||
).toHaveText(ldapUserName);
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: ldapAccountName })
|
||||
.locator('..')
|
||||
@@ -260,14 +260,14 @@ test('Set up LDAP auth method @ce @ent @docker', async ({
|
||||
}
|
||||
}
|
||||
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: ldapAccountName })
|
||||
.locator('..')
|
||||
.getByRole('cell')
|
||||
.nth(fullNameIndex),
|
||||
).toHaveText(ldapUserName);
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: ldapAccountName })
|
||||
.locator('..')
|
||||
|
||||
@@ -141,9 +141,7 @@ test('Set up OIDC auth method @ce @ent @docker @aws', async ({
|
||||
// View the OIDC account and verify account attributes
|
||||
await page.getByRole('link', { name: orgName }).click();
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText(orgName),
|
||||
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText(orgName),
|
||||
).toBeVisible();
|
||||
await page
|
||||
.getByRole('navigation', { name: 'IAM' })
|
||||
@@ -176,14 +174,14 @@ test('Set up OIDC auth method @ce @ent @docker @aws', async ({
|
||||
}
|
||||
}
|
||||
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: userName })
|
||||
.locator('..')
|
||||
.getByRole('cell')
|
||||
.nth(fullNameIndex),
|
||||
).toHaveText(userName);
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: userName })
|
||||
.locator('..')
|
||||
@@ -218,14 +216,14 @@ test('Set up OIDC auth method @ce @ent @docker @aws', async ({
|
||||
}
|
||||
}
|
||||
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: userName })
|
||||
.locator('..')
|
||||
.getByRole('cell')
|
||||
.nth(fullNameIndex),
|
||||
).toHaveText(userName);
|
||||
expect(
|
||||
await expect(
|
||||
page
|
||||
.getByRole('cell', { name: userName })
|
||||
.locator('..')
|
||||
|
||||
@@ -19,7 +19,7 @@ test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/');
|
||||
});
|
||||
|
||||
test.describe('AWS', async () => {
|
||||
test.describe('AWS', () => {
|
||||
test('Create an AWS Dynamic Host Catalog and set up Host Sets @ent @aws', async ({
|
||||
page,
|
||||
baseURL,
|
||||
|
||||
@@ -19,7 +19,7 @@ test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/');
|
||||
});
|
||||
|
||||
test.describe('AWS', async () => {
|
||||
test.describe('AWS', () => {
|
||||
test('Create an AWS Dynamic Host Catalog and set up Host Sets @ce @aws', async ({
|
||||
page,
|
||||
baseURL,
|
||||
|
||||
@@ -36,7 +36,7 @@ test('Log in, log out, and then log back in @ce @ent @aws @docker', async ({
|
||||
).toBeVisible();
|
||||
});
|
||||
|
||||
test.describe('Failure Cases', async () => {
|
||||
test.describe('Failure Cases', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/');
|
||||
});
|
||||
|
||||
@@ -181,5 +181,5 @@ test('Worker Tags @ce @ent @aws @docker', async ({ page }) => {
|
||||
await workersPage.removeTag(newTagKey);
|
||||
await expect(
|
||||
page.getByRole('table').getByRole('cell', { name: newTagKey }),
|
||||
).not.toBeVisible();
|
||||
).toBeHidden();
|
||||
});
|
||||
@@ -6,7 +6,7 @@
|
||||
import { expect, test } from '../fixtures/baseTest.js';
|
||||
import LoginPage from '../pages/loginPage.js';
|
||||
|
||||
test.describe('user/password authentication tests', async () => {
|
||||
test.describe('user/password authentication tests', () => {
|
||||
test('Authenticates and signs out', async ({
|
||||
electronPage,
|
||||
clusterUrl,
|
||||
|
||||
@@ -203,7 +203,7 @@ test.afterEach(async ({ request }) => {
|
||||
}
|
||||
});
|
||||
|
||||
test.describe('Credential Panel tests', async () => {
|
||||
test.describe('Credential Panel tests', () => {
|
||||
test('Display Vault brokered Credentials and handle special characters', async ({
|
||||
authedPage,
|
||||
}) => {
|
||||
|
||||
@@ -46,11 +46,11 @@ test.afterEach(async ({ request }) => {
|
||||
}
|
||||
});
|
||||
|
||||
test.describe('Scope tests', async () => {
|
||||
test.describe('Scope tests', () => {
|
||||
test('Shows the filtered targets based on selected scope', async ({
|
||||
authedPage,
|
||||
}) => {
|
||||
const headerNavLocator = await authedPage.getByLabel('header-nav');
|
||||
const headerNavLocator = authedPage.getByLabel('header-nav');
|
||||
await expect(headerNavLocator).toBeVisible();
|
||||
await expect(headerNavLocator.locator('summary')).toHaveText('Global');
|
||||
|
||||
@@ -62,7 +62,7 @@ test.describe('Scope tests', async () => {
|
||||
).toBeVisible();
|
||||
|
||||
await headerNavLocator.click();
|
||||
const orgAHeaderNavLink = await authedPage.getByRole('link', {
|
||||
const orgAHeaderNavLink = authedPage.getByRole('link', {
|
||||
name: orgA.name,
|
||||
});
|
||||
await orgAHeaderNavLink.click();
|
||||
@@ -73,10 +73,10 @@ test.describe('Scope tests', async () => {
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
authedPage.getByRole('link', { name: targetB.name }),
|
||||
).not.toBeVisible();
|
||||
).toBeHidden();
|
||||
|
||||
await headerNavLocator.click();
|
||||
const orgBHeaderNavLink = await authedPage.getByRole('link', {
|
||||
const orgBHeaderNavLink = authedPage.getByRole('link', {
|
||||
name: orgB.name,
|
||||
});
|
||||
await orgBHeaderNavLink.click();
|
||||
@@ -87,6 +87,6 @@ test.describe('Scope tests', async () => {
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
authedPage.getByRole('link', { name: targetA.name }),
|
||||
).not.toBeVisible();
|
||||
).toBeHidden();
|
||||
});
|
||||
});
|
||||
@@ -91,7 +91,7 @@ test.afterEach(async ({ request }) => {
|
||||
}
|
||||
});
|
||||
|
||||
test.describe('Sessions tests', async () => {
|
||||
test.describe('Sessions tests', () => {
|
||||
test('Establishes two different sessions and cancels them', async ({
|
||||
authedPage,
|
||||
}) => {
|
||||
@@ -135,7 +135,7 @@ test.describe('Sessions tests', async () => {
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Filtering sessions tests', async () => {
|
||||
test.describe('Filtering sessions tests', () => {
|
||||
test.beforeEach(async ({ authedPage }) => {
|
||||
// Connect to three targets
|
||||
await authedPage
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import { expect, test } from '../fixtures/baseTest.js';
|
||||
|
||||
test.describe('Settings Page tests', async () => {
|
||||
test.describe('Settings Page tests', () => {
|
||||
test.beforeEach(async ({ authedPage }) => {
|
||||
await authedPage.getByRole('link', { name: 'Settings' }).click();
|
||||
});
|
||||
|
||||
@@ -114,7 +114,7 @@ test.afterEach(async ({ request }) => {
|
||||
}
|
||||
});
|
||||
|
||||
test.describe('Targets tests', async () => {
|
||||
test.describe('Targets tests', () => {
|
||||
test('Connects to a tcp target with one host', async ({ authedPage }) => {
|
||||
await authedPage.getByRole('link', { name: targetWithHost.name }).click();
|
||||
await authedPage.getByRole('button', { name: 'Connect' }).click();
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
"eslint": "^8.54.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-n": "^16.3.1",
|
||||
"eslint-plugin-playwright": "^2.2.0",
|
||||
"nanoid": "^5.0.9",
|
||||
"prettier": "^3.0.0"
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user