Some checks are pending
Go Benchmark / Performance Regression Check (push) Waiting to run
Cerberus Integration / Cerberus Security Stack Integration (push) Waiting to run
Upload Coverage to Codecov / Backend Codecov Upload (push) Waiting to run
Upload Coverage to Codecov / Frontend Codecov Upload (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (go) (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Waiting to run
CrowdSec Integration / CrowdSec Bouncer Integration (push) Waiting to run
Docker Build, Publish & Test / build-and-push (push) Waiting to run
Docker Build, Publish & Test / Security Scan PR Image (push) Blocked by required conditions
Quality Checks / Auth Route Protection Contract (push) Waiting to run
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Waiting to run
Quality Checks / Backend (Go) (push) Waiting to run
Quality Checks / Frontend (React) (push) Waiting to run
Rate Limit integration / Rate Limiting Integration (push) Waiting to run
Security Scan (PR) / Trivy Binary Scan (push) Waiting to run
Supply Chain Verification (PR) / Verify Supply Chain (push) Waiting to run
WAF integration / Coraza WAF Integration (push) Waiting to run
105 lines
3.0 KiB
TypeScript
Executable File
105 lines
3.0 KiB
TypeScript
Executable File
/**
|
|
* Security Configuration Workflow Tests
|
|
*
|
|
* Extracted from Group B of multi-feature-workflows.spec.ts
|
|
*/
|
|
|
|
import { test, expect, loginUser } from '../fixtures/auth-fixtures';
|
|
import { generateProxyHost } from '../fixtures/proxy-hosts';
|
|
import { generateAllowListForIPs } from '../fixtures/access-lists';
|
|
import {
|
|
waitForLoadingComplete,
|
|
waitForResourceInUI,
|
|
} from '../utils/wait-helpers';
|
|
|
|
test.describe('Security Configuration Workflow', () => {
|
|
test('should configure complete security stack for host', async ({
|
|
page,
|
|
adminUser,
|
|
testData,
|
|
}) => {
|
|
await loginUser(page, adminUser);
|
|
|
|
await test.step('Create proxy host', async () => {
|
|
const proxyInput = generateProxyHost();
|
|
const proxy = await testData.createProxyHost({
|
|
domain: proxyInput.domain,
|
|
forwardHost: proxyInput.forwardHost,
|
|
forwardPort: proxyInput.forwardPort,
|
|
});
|
|
|
|
await page.goto('/proxy-hosts');
|
|
await waitForResourceInUI(page, proxy.domain);
|
|
});
|
|
|
|
await test.step('Navigate to security settings', async () => {
|
|
await page.goto('/security');
|
|
await waitForLoadingComplete(page);
|
|
const content = page.locator('main, .content').first();
|
|
await expect(content).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test('should enable WAF and verify protection', async ({
|
|
page,
|
|
adminUser,
|
|
}) => {
|
|
await loginUser(page, adminUser);
|
|
|
|
await test.step('Navigate to WAF configuration', async () => {
|
|
await page.goto('/security/waf');
|
|
await waitForLoadingComplete(page);
|
|
});
|
|
|
|
await test.step('Verify WAF configuration page', async () => {
|
|
const content = page.locator('main, .content').first();
|
|
await expect(content).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test('should configure CrowdSec integration', async ({
|
|
page,
|
|
adminUser,
|
|
}) => {
|
|
await loginUser(page, adminUser);
|
|
|
|
await test.step('Navigate to CrowdSec configuration', async () => {
|
|
await page.goto('/security/crowdsec');
|
|
await waitForLoadingComplete(page);
|
|
});
|
|
|
|
await test.step('Verify CrowdSec page loads', async () => {
|
|
const content = page.locator('main, .content').first();
|
|
await expect(content).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test('should setup access restrictions workflow', async ({
|
|
page,
|
|
adminUser,
|
|
testData,
|
|
}) => {
|
|
await loginUser(page, adminUser);
|
|
|
|
await test.step('Create restrictive ACL', async () => {
|
|
const acl = generateAllowListForIPs(['10.0.0.0/8']);
|
|
await testData.createAccessList(acl);
|
|
|
|
await page.goto('/access-lists');
|
|
await waitForResourceInUI(page, acl.name);
|
|
});
|
|
|
|
await test.step('Create protected proxy host', async () => {
|
|
const proxyInput = generateProxyHost();
|
|
const proxy = await testData.createProxyHost({
|
|
domain: proxyInput.domain,
|
|
forwardHost: proxyInput.forwardHost,
|
|
forwardPort: proxyInput.forwardPort,
|
|
});
|
|
|
|
await page.goto('/proxy-hosts');
|
|
await waitForResourceInUI(page, proxy.domain);
|
|
});
|
|
});
|
|
});
|