jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

64 lines
1.6 KiB

const fetch = require('node-fetch');
module.exports = () => describe('Test loading a bunch of pages', () => {
const urls = [
'boards.html',
'boards.json',
'boards.json?search=test&sort=popularity&direction=desc',
'boards.html?search=test&sort=popularity&direction=desc',
'overboard.html',
'overboard.json',
'overboard.html?add=test&rem=abc',
'overboard.json?add=test&rem=abc',
'index.html',
'news.html',
'rules.html',
'faq.html',
'globalmanage/recent.html',
'globalmanage/recent.json',
'globalmanage/reports.html',
'globalmanage/reports.json',
'globalmanage/bans.html',
'globalmanage/boards.html',
'globalmanage/boards.json',
'globalmanage/globallogs.html',
'globalmanage/accounts.html',
'globalmanage/roles.html',
'globalmanage/roles.json',
'globalmanage/news.html',
'globalmanage/filters.html',
'globalmanage/settings.html',
];
let sessionCookie;
test('login as admin', async () => {
const params = new URLSearchParams();
params.append('username', 'admin');
params.append('password', process.env.TEST_ADMIN_PASSWORD);
const response = await fetch('http://localhost/forms/login', {
headers: {
'x-using-xhr': 'true',
},
method: 'POST',
body: params,
redirect: 'manual',
});
const rawHeaders = response.headers.raw();
expect(rawHeaders['set-cookie']).toBeDefined();
expect(rawHeaders['set-cookie'][0]).toMatch(/^connect\.sid/);
sessionCookie = rawHeaders['set-cookie'][0];
});
urls.forEach(u => {
test(u, async () => {
const response = await fetch(`http://localhost/${u}`, {
headers: {
cookie: sessionCookie,
},
});
expect(response.ok).toBe(true);
});
});
});