test-install.js 799 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. 'use strict'
  2. const { test } = require('tap')
  3. const { test: { install } } = require('../lib/install')
  4. const log = require('npmlog')
  5. log.level = 'error' // we expect a warning
  6. test('EACCES retry once', async (t) => {
  7. t.plan(3)
  8. const fs = {
  9. promises: {
  10. stat (_) {
  11. const err = new Error()
  12. err.code = 'EACCES'
  13. t.ok(true)
  14. throw err
  15. }
  16. }
  17. }
  18. const Gyp = {
  19. devDir: __dirname,
  20. opts: {
  21. ensure: true
  22. },
  23. commands: {
  24. install (argv, cb) {
  25. install(fs, Gyp, argv).then(cb, cb)
  26. },
  27. remove (_, cb) {
  28. cb()
  29. }
  30. }
  31. }
  32. try {
  33. await install(fs, Gyp, [])
  34. } catch (err) {
  35. t.ok(true)
  36. if (/"pre" versions of node cannot be installed/.test(err.message)) {
  37. t.ok(true)
  38. }
  39. }
  40. })