[grade=A] Harden server-managed license renewals
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
const express = require('express');
|
||||
const request = require('supertest');
|
||||
const createLicenseRouter = require('../routes/license');
|
||||
|
||||
function asyncHandler(fn) {
|
||||
return (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next);
|
||||
}
|
||||
|
||||
test('GET license status forces online entitlement refresh before responding', async () => {
|
||||
const licenseManager = {
|
||||
refreshOnline: jest.fn().mockResolvedValue(true),
|
||||
getStatus: jest.fn().mockReturnValue({ active: true, tier: 'premium' }),
|
||||
};
|
||||
const app = express();
|
||||
app.use('/license', createLicenseRouter({ licenseManager, asyncHandler }));
|
||||
const response = await request(app).get('/license/status');
|
||||
expect(response.status).toBe(200);
|
||||
expect(licenseManager.refreshOnline).toHaveBeenCalledWith();
|
||||
expect(licenseManager.getStatus).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
Reference in New Issue
Block a user