Initial commit: SmoothSchedule multi-tenant scheduling platform
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>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
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!');
|
||||
});
|
||||
Reference in New Issue
Block a user