This commit includes: - Django backend with multi-tenancy (django-tenants) - React + TypeScript frontend with Vite - Platform administration API with role-based access control - Authentication system with token-based auth - Quick login dev tools for testing different user roles - CORS and CSRF configuration for local development - Docker development environment setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test('scheduler loads and reloads correctly after refactoring', async ({ page }) => {
|
|
console.log('\n=== Testing Scheduler Refactoring ===\n');
|
|
|
|
// Login as business owner
|
|
console.log('Step 1: Login');
|
|
await page.goto('http://acme.lvh.me:5173/#/login');
|
|
await page.getByLabel(/username/i).fill('acme_owner');
|
|
await page.getByLabel(/password/i).fill('password123');
|
|
await page.getByRole('button', { name: /sign in/i }).click();
|
|
await page.waitForTimeout(2000);
|
|
console.log('✓ Logged in');
|
|
|
|
// Navigate to scheduler
|
|
console.log('\nStep 2: Navigate to Scheduler');
|
|
await page.goto('http://acme.lvh.me:5173/#/scheduler');
|
|
|
|
// Wait for scheduler content to load (look for the "Resources" label)
|
|
await page.waitForSelector('text=Resources', { timeout: 5000 });
|
|
const hasTimelineContent = await page.locator('text=Resources').first().isVisible();
|
|
console.log('✓ Scheduler content visible:', hasTimelineContent);
|
|
|
|
// Take screenshot before reload
|
|
await page.screenshot({ path: 'scheduler-before-reload.png' });
|
|
|
|
// Hard reload
|
|
console.log('\nStep 3: Hard reload scheduler page');
|
|
await page.reload({ waitUntil: 'networkidle' });
|
|
|
|
// Wait for scheduler to reload (look for the "Resources" label)
|
|
await page.waitForSelector('text=Resources', { timeout: 5000 });
|
|
const hasContentAfterReload = await page.locator('text=Resources').first().isVisible();
|
|
console.log('✓ Scheduler visible after reload:', hasContentAfterReload);
|
|
|
|
// Take screenshot after reload
|
|
await page.screenshot({ path: 'scheduler-after-reload.png' });
|
|
|
|
// Verify URL didn't change
|
|
expect(page.url()).toContain('scheduler');
|
|
console.log('✓ URL correct:', page.url());
|
|
|
|
// Final check
|
|
expect(hasContentAfterReload).toBe(true);
|
|
console.log('\n✅ Test passed: Scheduler works after reload!');
|
|
});
|