file.test.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * @jest-environment node
  3. */
  4. const fs = require('fs');
  5. const { Snekfetch } = require('../interop');
  6. const resolve = (x) => require.resolve(x);
  7. test('node/file get', () => {
  8. const original = fs.readFileSync(resolve('../../package.json')).toString();
  9. return Snekfetch.get(`file://${resolve('../../package.json')}`)
  10. .then((res) => {
  11. expect(res.text).toBe(original);
  12. });
  13. });
  14. test('node/file post', () => {
  15. const content = 'wow this is a\n\ntest!!';
  16. const file = './test_file_post.txt';
  17. return Snekfetch.post(`file://${file}`)
  18. .send(content)
  19. .then(() => Snekfetch.get(`file://${file}`))
  20. .then((res) => {
  21. expect(res.text).toBe(content);
  22. })
  23. .then(() => {
  24. fs.unlinkSync(file);
  25. });
  26. });
  27. test('node/file delete', () => {
  28. const file = './test_file_delete.txt';
  29. fs.closeSync(fs.openSync(file, 'w'));
  30. expect(fs.existsSync(file)).toBe(true);
  31. return Snekfetch.delete(`file://${file}`)
  32. .then(() => {
  33. expect(fs.existsSync(file)).toBe(false);
  34. });
  35. });
  36. test('node/file invalid method', () => {
  37. expect(() => {
  38. Snekfetch.options('file:///dev/urandom');
  39. }).toThrow(/Invalid request method for file:/);
  40. });