0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-05 08:02:42 +00:00

Rework tests

This commit is contained in:
G.Ambatte
2025-07-15 09:02:57 +12:00
parent 638e54535d
commit 90e577dd3f

View File

@@ -1,73 +1,65 @@
import forceSSL from './forcessl.mw'; import forceSSL from './forcessl.mw';
describe('Tests for ForceSSL middleware', ()=>{ describe('Tests for ForceSSL middleware', ()=>{
let originalEnv;
let nextFn;
it('should call next() when NODE_ENV is set to local', ()=>{ let req = {};
const nodeEnv = process.env.NODE_ENV; let res = {};
process.env.NODE_ENV = 'local';
const nextFn = jest.fn(); beforeEach(()=>{
originalEnv = process.env.NODE_ENV;
nextFn = jest.fn();
forceSSL(null, null, nextFn); req = {
header : ()=>{ return 'http'; },
process.env.NODE_ENV = nodeEnv;
expect(nextFn).toHaveBeenCalled();
});
it('should call next() when NODE_ENV is set to docker', ()=>{
const nodeEnv = process.env.NODE_ENV;
process.env.NODE_ENV = 'docker';
const nextFn = jest.fn();
forceSSL(null, null, nextFn);
process.env.NODE_ENV = nodeEnv;
expect(nextFn).toHaveBeenCalled();
});
it('should return 302 when header not HTTPS', ()=>{
const nodeEnv = process.env.NODE_ENV;
process.env.NODE_ENV = 'test';
const req = {
header : ()=>{ return true; },
get : ()=>{ return 'test'; }, get : ()=>{ return 'test'; },
url : 'URL' url : 'URL'
}; };
const res = { res = {
redirect : jest.fn((code, url)=>{}) redirect : jest.fn()
}; };
});
const nextFn = jest.fn(); afterEach(()=>{
process.env.NODE_ENV = originalEnv;
forceSSL(req, res, nextFn); jest.clearAllMocks();
process.env.NODE_ENV = nodeEnv;
expect(res.redirect).toHaveBeenCalledWith(302, 'https://testURL');
}); });
it('should call next() header is HTTPS and NODE_ENV not local or docker', ()=>{ it('should not redirect when NODE_ENV is set to local', ()=>{
const nodeEnv = process.env.NODE_ENV; process.env.NODE_ENV = 'local';
forceSSL(null, null, nextFn);
expect(res.redirect).not.toHaveBeenCalled();
expect(nextFn).toHaveBeenCalled();
});
it('should not redirect when NODE_ENV is set to docker', ()=>{
process.env.NODE_ENV = 'docker';
forceSSL(null, null, nextFn);
expect(res.redirect).not.toHaveBeenCalled();
expect(nextFn).toHaveBeenCalled();
});
it('should redirect with 302 when header is not HTTPS and NODE_ENV is not local or docker', ()=>{
process.env.NODE_ENV = 'test'; process.env.NODE_ENV = 'test';
const req = {
header : ()=>{ return 'https'; }
};
const res = {
};
const nextFn = jest.fn();
forceSSL(req, res, nextFn); forceSSL(req, res, nextFn);
process.env.NODE_ENV = nodeEnv; expect(res.redirect).toHaveBeenCalledWith(302, 'https://testURL');
expect(nextFn).not.toHaveBeenCalled();
});
it('should not redirect when header is HTTPS and NODE_ENV is not local or docker', ()=>{
process.env.NODE_ENV = 'test';
req.header = ()=>{ return 'https'; };
forceSSL(req, res, nextFn);
expect(res.redirect).not.toHaveBeenCalled();
expect(nextFn).toHaveBeenCalled(); expect(nextFn).toHaveBeenCalled();
}); });