diff --git a/server/app.spec.js b/server/app.spec.js new file mode 100644 index 000000000..4f262a79d --- /dev/null +++ b/server/app.spec.js @@ -0,0 +1,47 @@ +/* eslint-disable max-lines */ + +const app = require('./app.js').app; + +const res = { + _status : 0, + status : jest.fn((n)=>{res._status = n; return res;}), + _send : '', + send : jest.fn((data)=>{res._send = data; return res;}), + set : jest.fn(()=>{}), + setHeader : jest.fn(()=>{}), + reset : ()=>{ res._status = 0; res._send = ''; } +}; + +describe('Tests for app', ()=>{ + beforeEach(()=>{ + return res.reset(); + }); + + it('get CSS from a test brew that has a style', async ()=>{ + const testBrew = { title: 'test brew', shareId: 'iAmATestBrew', text: '```css\n\nI Have a style!\n````\n\n' }; + + const req = { brew: testBrew }; + await app.getCSS(req, res); + + expect(res).toHaveProperty('_status', 200); + expect(res).toHaveProperty('_send', '\nI Have a style!\n'); + }); + + it('get CSS from a test brew that has no style', async ()=>{ + const testBrew = { title: 'test brew', shareId: 'iAmATestBrew', text: 'No style data here' }; + + const req = { brew: testBrew }; + await app.getCSS(req, res); + + expect(res).toHaveProperty('_status', 404); + expect(res).toHaveProperty('_send', undefined); + }); + + it('get CSS from no brew', async ()=>{ + const req = { brew: undefined }; + await app.getCSS(req, res); + + expect(res).toHaveProperty('_status', 404); + expect(res).toHaveProperty('_send', undefined); + }); +});