feat(api): add server-side caching for requests that could benefit (#3463)
* feat(api): add server-side caching for requests that could benefit for them * fix(tests): do not cache responses while in tests * fix: remove commented out leftover code * chore(deps): update dependency html-webpack-plugin to v5.5.4 * Bundle embedded web app * fix: remove caching for web app assets under test * chore(tests): re-enable temporarily disabled test * chore(deps): update dependency typescript to v5.3.3 * Bundle embedded web app * chore(deps): update dependency npm to v10.2.5 * Bundle embedded web app --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online>
This commit is contained in:
@@ -9,9 +9,9 @@ request = request('http://127.0.0.1:8080');
|
||||
var ajv = new Ajv();
|
||||
var nodeInfoSchema = jsonfile.readFileSync('schema/nodeinfo_2.0.json');
|
||||
|
||||
const serverName = 'owncast.server.test'
|
||||
const serverURL = 'http://' + serverName
|
||||
const fediUsername = 'streamer'
|
||||
const serverName = 'owncast.server.test';
|
||||
const serverURL = 'http://' + serverName;
|
||||
const fediUsername = 'streamer';
|
||||
|
||||
test('disable federation', async (done) => {
|
||||
const res = await sendAdminRequest('config/federation/enable', false);
|
||||
@@ -59,10 +59,7 @@ test('verify responses of /federation/ when federation is disabled', async (done
|
||||
});
|
||||
|
||||
test('set required parameters and enable federation', async (done) => {
|
||||
const res1 = await sendAdminRequest(
|
||||
'config/serverurl',
|
||||
serverURL
|
||||
);
|
||||
const res1 = await sendAdminRequest('config/serverurl', serverURL);
|
||||
const res2 = await sendAdminRequest(
|
||||
'config/federation/username',
|
||||
fediUsername
|
||||
@@ -73,28 +70,47 @@ test('set required parameters and enable federation', async (done) => {
|
||||
|
||||
test('verify responses of /.well-known/webfinger when federation is enabled', async (done) => {
|
||||
const resNoResource = request.get('/.well-known/webfinger').expect(400);
|
||||
const resBadResource = request.get(
|
||||
'/.well-known/webfinger?resource=' + fediUsername + '@' + serverName
|
||||
).expect(400);
|
||||
const resBadResource2 = request.get(
|
||||
'/.well-known/webfinger?resource=notacct:' + fediUsername + '@' + serverName
|
||||
).expect(400);
|
||||
const resBadServer = request.get(
|
||||
'/.well-known/webfinger?resource=acct:' + fediUsername + '@not' + serverName
|
||||
).expect(404);
|
||||
const resBadUser = request.get(
|
||||
'/.well-known/webfinger?resource=acct:not' + fediUsername + '@' + serverName
|
||||
).expect(404);
|
||||
const resNoAccept = request.get(
|
||||
'/.well-known/webfinger?resource=acct:' + fediUsername + '@' + serverName
|
||||
).expect(200)
|
||||
const resBadResource = request
|
||||
.get('/.well-known/webfinger?resource=' + fediUsername + '@' + serverName)
|
||||
.expect(400);
|
||||
const resBadResource2 = request
|
||||
.get(
|
||||
'/.well-known/webfinger?resource=notacct:' +
|
||||
fediUsername +
|
||||
'@' +
|
||||
serverName
|
||||
)
|
||||
.expect(400);
|
||||
const resBadServer = request
|
||||
.get(
|
||||
'/.well-known/webfinger?resource=acct:' +
|
||||
fediUsername +
|
||||
'@not' +
|
||||
serverName
|
||||
)
|
||||
.expect(404);
|
||||
const resBadUser = request
|
||||
.get(
|
||||
'/.well-known/webfinger?resource=acct:not' +
|
||||
fediUsername +
|
||||
'@' +
|
||||
serverName
|
||||
)
|
||||
.expect(404);
|
||||
const resNoAccept = request
|
||||
.get(
|
||||
'/.well-known/webfinger?resource=acct:' + fediUsername + '@' + serverName
|
||||
)
|
||||
.expect(200)
|
||||
.expect('Content-Type', /json/)
|
||||
.then((res) => {
|
||||
parseJson(res.text);
|
||||
});
|
||||
const resWithAccept = request.get(
|
||||
'/.well-known/webfinger?resource=acct:' + fediUsername + '@' + serverName
|
||||
).expect(200)
|
||||
const resWithAccept = request
|
||||
.get(
|
||||
'/.well-known/webfinger?resource=acct:' + fediUsername + '@' + serverName
|
||||
)
|
||||
.expect(200)
|
||||
.set('Accept', 'application/json')
|
||||
.expect('Content-Type', /json/)
|
||||
.then((res) => {
|
||||
@@ -104,14 +120,16 @@ test('verify responses of /.well-known/webfinger when federation is enabled', as
|
||||
});
|
||||
|
||||
test('verify responses of /.well-known/host-meta when federation is enabled', async (done) => {
|
||||
const res = request.get('/.well-known/host-meta')
|
||||
const res = request
|
||||
.get('/.well-known/host-meta')
|
||||
.expect(200)
|
||||
.expect('Content-Type', /xml/);
|
||||
done();
|
||||
});
|
||||
|
||||
test('verify responses of /.well-known/nodeinfo when federation is enabled', async (done) => {
|
||||
const res = request.get('/.well-known/nodeinfo')
|
||||
const res = request
|
||||
.get('/.well-known/nodeinfo')
|
||||
.expect(200)
|
||||
.expect('Content-Type', /json/)
|
||||
.then((res) => {
|
||||
@@ -121,7 +139,8 @@ test('verify responses of /.well-known/nodeinfo when federation is enabled', asy
|
||||
});
|
||||
|
||||
test('verify responses of /.well-known/x-nodeinfo2 when federation is enabled', async (done) => {
|
||||
const res = request.get('/.well-known/x-nodeinfo2')
|
||||
const res = request
|
||||
.get('/.well-known/x-nodeinfo2')
|
||||
.expect(200)
|
||||
.expect('Content-Type', /json/)
|
||||
.then((res) => {
|
||||
@@ -143,7 +162,8 @@ test('verify responses of /nodeinfo/2.0 when federation is enabled', async (done
|
||||
});
|
||||
|
||||
test('verify responses of /api/v1/instance when federation is enabled', async (done) => {
|
||||
const res = request.get('/api/v1/instance')
|
||||
const res = request
|
||||
.get('/api/v1/instance')
|
||||
.expect(200)
|
||||
.expect('Content-Type', /json/)
|
||||
.then((res) => {
|
||||
@@ -153,15 +173,17 @@ test('verify responses of /api/v1/instance when federation is enabled', async (d
|
||||
});
|
||||
|
||||
test('verify responses of /federation/user/ when federation is enabled', async (done) => {
|
||||
const resNoAccept = request.get('/federation/user/')
|
||||
.expect(307);
|
||||
const resWithAccept = request.get('/federation/user/')
|
||||
const resNoAccept = request.get('/federation/user/').expect(307);
|
||||
const resWithAccept = request
|
||||
.get('/federation/user/')
|
||||
.set('Accept', 'application/json')
|
||||
.expect(404);
|
||||
const resWithAcceptWrongUsername = request.get('/federation/user/not' + fediUsername)
|
||||
const resWithAcceptWrongUsername = request
|
||||
.get('/federation/user/not' + fediUsername)
|
||||
.set('Accept', 'application/json')
|
||||
.expect(404);
|
||||
const resWithAcceptUsername = request.get('/federation/user/' + fediUsername)
|
||||
const resWithAcceptUsername = request
|
||||
.get('/federation/user/' + fediUsername)
|
||||
.set('Accept', 'application/json')
|
||||
.expect(200)
|
||||
.expect('Content-Type', /json/)
|
||||
@@ -172,9 +194,9 @@ test('verify responses of /federation/user/ when federation is enabled', async (
|
||||
});
|
||||
|
||||
test('verify responses of /federation/ when federation is enabled', async (done) => {
|
||||
const resNoAccept = request.get('/federation/')
|
||||
.expect(307);
|
||||
const resWithAccept = request.get('/federation/')
|
||||
const resNoAccept = request.get('/federation/').expect(307);
|
||||
const resWithAccept = request
|
||||
.get('/federation/')
|
||||
.set('Accept', 'application/json')
|
||||
.expect(404);
|
||||
done();
|
||||
|
||||
Reference in New Issue
Block a user