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.
58 lines
1.5 KiB
58 lines
1.5 KiB
var request = require('supertest'); |
|
request = request('http://127.0.0.1:8080'); |
|
|
|
test('main page requires no auth', async (done) => { |
|
await request.get('/').expect(200); |
|
done(); |
|
}); |
|
|
|
test('admin without trailing slash redirects', async (done) => { |
|
await request.get('/admin').expect(301); |
|
done(); |
|
}); |
|
|
|
test('admin with trailing slash requires auth', async (done) => { |
|
await request.get('/admin/').expect(401); |
|
done(); |
|
}); |
|
|
|
const paths = [ |
|
'/admin/config/general/', |
|
'/admin/config/server/', |
|
'/admin/config-video', |
|
'/admin/config-chat/', |
|
'/admin/config-federation/', |
|
'/admin/config-notify', |
|
'/admin/federation/followers/', |
|
'/admin/chat/messages', |
|
'/admin/viewer-info/', |
|
'/admin/chat/users/', |
|
'/admin/stream-health', |
|
'/admin/hardware-info/', |
|
// Some APIs too |
|
'/api/admin/status', |
|
'/api/admin/serverconfig', |
|
'/api/admin/chat/clients', |
|
'/api/admin/chat/messages', |
|
'/api/admin/followers', |
|
'/api/admin/prometheus', |
|
]; |
|
|
|
// Test a bunch of paths to make sure random different pages don't slip by for some reason. |
|
// Technically this shouldn't be possible but it's a sanity check anyway. |
|
paths.forEach((path) => { |
|
test(`admin path ${path} requires auth and should fail`, async (done) => { |
|
await request.get(path).expect(401); |
|
done(); |
|
}); |
|
}); |
|
|
|
// Try them again with auth. Some with trailing slashes some without. |
|
// Allow redirects. |
|
paths.forEach((path) => { |
|
test(`admin path ${path} requires auth and should pass`, async (done) => { |
|
const r = await request.get(path).auth('admin', 'abc123'); |
|
expect([200, 301]).toContain(r.status); |
|
done(); |
|
}); |
|
});
|
|
|