Initial state for GitNexus analysis
This commit is contained in:
31
apps/e2e/tests/module-builder.spec.ts
Normal file
31
apps/e2e/tests/module-builder.spec.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* E2E Test: Module Builder — Full CRUD lifecycle
|
||||
*/
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test.describe('Module Builder', () => {
|
||||
test('create module, add fields, insert record, query, update, soft-delete', async ({ page }) => {
|
||||
// Login
|
||||
await page.goto('/auth/sign-in');
|
||||
await page.fill('input[name="email"]', 'test@example.com');
|
||||
await page.fill('input[name="password"]', 'testpassword123');
|
||||
await page.click('button[type="submit"]');
|
||||
await page.waitForURL('**/home/**');
|
||||
|
||||
// Navigate to modules
|
||||
await page.click('text=Module');
|
||||
await expect(page.locator('h1')).toContainText('Module');
|
||||
|
||||
// Create module via API or UI
|
||||
// ... test continues with full CRUD cycle
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Cross-tenant isolation', () => {
|
||||
test('tenant A cannot see tenant B data', async ({ page }) => {
|
||||
// Login as tenant A user
|
||||
// Verify can see own modules
|
||||
// Verify cannot access tenant B module URL
|
||||
// Verify API returns only own data
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user