77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
const { test, expect } = require('@playwright/test');
|
|
|
|
test.describe('AutoBackups - Application Health Tests', () => {
|
|
test('should check if the Flask application is running', async ({ page }) => {
|
|
const response = await page.goto('/');
|
|
|
|
// Just check that we get some response from the server
|
|
expect(response.status()).toBeLessThan(500);
|
|
|
|
const title = await page.title();
|
|
console.log(`Application title: "${title}"`);
|
|
|
|
// Check if the page has some content
|
|
const bodyText = await page.textContent('body');
|
|
expect(bodyText.length).toBeGreaterThan(10);
|
|
|
|
await page.screenshot({ path: 'test-results/health-check.png' });
|
|
});
|
|
|
|
test('should check application endpoints availability', async ({ page }) => {
|
|
const endpoints = ['/', '/config'];
|
|
const results = {};
|
|
|
|
for (const endpoint of endpoints) {
|
|
try {
|
|
const response = await page.goto(endpoint);
|
|
results[endpoint] = {
|
|
status: response.status(),
|
|
accessible: response.status() < 500
|
|
};
|
|
console.log(`${endpoint}: Status ${response.status()}`);
|
|
} catch (error) {
|
|
results[endpoint] = {
|
|
status: 'error',
|
|
accessible: false,
|
|
error: error.message
|
|
};
|
|
console.log(`${endpoint}: Error - ${error.message}`);
|
|
}
|
|
}
|
|
|
|
// At least the root endpoint should be accessible
|
|
expect(results['/'].accessible).toBe(true);
|
|
|
|
console.log('Endpoint accessibility results:', results);
|
|
});
|
|
|
|
test('should check if static assets are loading', async ({ page }) => {
|
|
await page.goto('/');
|
|
|
|
// Check for common static assets
|
|
const cssRequests = [];
|
|
const jsRequests = [];
|
|
|
|
page.on('response', response => {
|
|
const url = response.url();
|
|
if (url.includes('.css')) {
|
|
cssRequests.push({ url, status: response.status() });
|
|
} else if (url.includes('.js')) {
|
|
jsRequests.push({ url, status: response.status() });
|
|
}
|
|
});
|
|
|
|
// Wait a bit for assets to load
|
|
await page.waitForTimeout(2000);
|
|
|
|
console.log(`CSS requests: ${cssRequests.length}`);
|
|
console.log(`JS requests: ${jsRequests.length}`);
|
|
|
|
// Log any failed asset requests
|
|
const failedAssets = [...cssRequests, ...jsRequests].filter(req => req.status >= 400);
|
|
if (failedAssets.length > 0) {
|
|
console.log('Failed asset requests:', failedAssets);
|
|
}
|
|
});
|
|
});
|