/** * Factory the complete file path * * @param {String} templatesPath - Templates dir path * @param {String} filename - file name without extension * * @return {String} complete file path */ const factoryFilePath = (templatesPath, filename) => `${path.join(templatesPath, filename)}.html`
it('triggers `error(error)` when fragment responds with 50x', done => { nock('https://fragment') .get('/') .reply(500); const fragment = new Fragment(getOptions(TAG)); fragment.on('error', error => { assert.ok(error); done(); }); fragment.fetch(REQUEST); });
// Root Server http .createServer((req, res) => { if (req.url === '/favicon.ico') { res.writeHead(200, { 'Content-Type': 'image/x-icon' }); return res.end(''); } tailor.requestHandler(req, res); }) .listen(8080, function() { console.log('Tailor server listening on port 8080'); });
fragmentRequest.on('response', response => { if (response.statusCode >= 500) { reject(new Error('Internal Server Error')); } else { resolve(response); } });
onEnd(st) { this.push(Buffer.concat(st.buffer)); this.cleanup(st); this.processNext(); }
describe('parseTemplate', () => { it('returns a Promise', () => { assert(parseTempatePartial('template') instanceof Promise); }); it('should reject with error for invalid templates', () => { const template = () => new Error('throw'); parseTempatePartial(template()).catch(err => { assert(err instanceof Error); }); }); });
beforeEach(done => { const tailor = createTailorInstance({ pipeDefinition: () => Buffer.from('') }); mockContext.returns(Promise.resolve({})); server = http.createServer(tailor.requestHandler); server.listen(8080, 'localhost', done); });
// Root Server http .createServer((req, res) => { tailor.requestHandler(req, res); }) .listen(8080, function() { console.log('Tailor server listening on port 8080'); });
it('triggers `response(statusCode, headers)` when received headers', done => { nock('https://fragment') .get('/') .reply(200, 'OK', RESPONSE_HEADERS); const fragment = new Fragment(getOptions(TAG)); fragment.on('response', (statusCode, headers) => { assert.equal(statusCode, 200); assert.deepEqual(headers, RESPONSE_HEADERS); done(); }); fragment.fetch(REQUEST); });
http .createServer((request, response) => { response.writeHead(200, { 'Content-Type': 'text/html' }); response.write(buffer); response.end(); }) .listen(8081);
it('triggers `end(contentSize)` when the content is succesfully retreived', done => { nock('https://fragment') .get('/') .reply(200, '12345'); const fragment = new Fragment(getOptions(TAG)); fragment.on('end', contentSize => { assert.equal(contentSize, 5); done(); }); fragment.fetch(REQUEST); fragment.stream.resume(); });
// Root Server http .createServer((req, res) => { tailor.requestHandler(req, res) }) .listen(8080, function() { console.log('Tailor server listening on port 8080'); });