index.js 781 B

1234567891011121314151617181920212223242526272829303132
  1. let server // static reference to the mock server, so we can close and re-assign on 2nd call
  2. module.exports = (on, _config) => {
  3. on('task', {
  4. mockServer ({ interceptUrl, fixture }) {
  5. const fs = require('fs')
  6. const http = require('http')
  7. const { URL } = require('url')
  8. if (server) {
  9. // close any previous instance
  10. server.close()
  11. }
  12. const url = new URL(interceptUrl)
  13. server = http.createServer((req, res) => {
  14. if (req.url === url.pathname) {
  15. const data = fs.readFileSync(`./cypress/fixtures/${fixture}`)
  16. res.end(data)
  17. } else {
  18. res.end()
  19. }
  20. })
  21. server.listen(url.port)
  22. console.log(`listening at port ${url.port}`)
  23. return null
  24. }
  25. })
  26. }