/* * * * * * * * * * * * * DO NOT EDIT THIS FILE * For FCC testing purposes! * * * * * * * * * * * */ 'use strict'; const cors = require('cors'); const fs = require('fs'); const runner = require('../test-runner'); module.exports = function (app) { app.route('/_api/server.js') .get(function(req, res, next) { console.log('requested'); fs.readFile(__dirname + '/server.js', function(err, data) { if(err) return next(err); res.send(data.toString()); }); }); app.route('/_api/routes/api.js') .get(function(req, res, next) { console.log('requested'); fs.readFile(__dirname + '/routes/api.js', function(err, data) { if(err) return next(err); res.type('txt').send(data.toString()); }); }); app.get('/_api/get-tests', cors(), function(req, res, next){ console.log('requested'); if(process.env.NODE_ENV === 'test') return next(); res.json({status: 'unavailable'}); }, function(req, res, next){ if(!runner.report) return next(); res.json(testFilter(runner.report, req.query.type, req.query.n)); }, function(req, res){ runner.on('done', function(report){ process.nextTick(() => res.json(testFilter(runner.report, req.query.type, req.query.n))); }); }); }; function testFilter(tests, type, n) { let out; switch (type) { case 'unit' : out = tests.filter(t => t.context.match('Unit Tests')); break; case 'functional': out = tests.filter(t => t.context.match('Functional Tests') && !t.title.match('#example')); break; default: out = tests; } if(n !== undefined) { return out[n] || out; } return out; }