AutoBackups/tests/e2e/health-check.spec.js

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);
}
});
});