This is a small CLI tool that dumps all of Prettier’s default configuration options to a file in the format of your choice.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test.js 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const fs = require('fs');
  2. const test = require('tape');
  3. const TOML = require('toml');
  4. const YAML = require('yaml');
  5. const { defaultConfigFor, formats } = require('.');
  6. test('generate JSON', t => {
  7. t.plan(1);
  8. const result = formats.json.generate();
  9. t.deepEqual(JSON.parse(result), defaultConfigFor('json'));
  10. });
  11. test('generate TOML', t => {
  12. t.plan(1);
  13. const result = formats.toml.generate();
  14. t.deepEqual(TOML.parse(result), defaultConfigFor('toml'));
  15. });
  16. test('generate YAML', t => {
  17. t.plan(1);
  18. const result = formats.yaml.generate();
  19. t.deepEqual(YAML.parse(result), defaultConfigFor('yaml'));
  20. });
  21. test('generate JS', t => {
  22. t.plan(1);
  23. const result = formats.js.generate();
  24. t.deepEqual(eval(result), defaultConfigFor('js'));
  25. });
  26. test('generate package.json', t => {
  27. t.plan(1);
  28. const before = JSON.parse(fs.readFileSync('package.json'));
  29. const result = formats['package.json'].generate();
  30. before.prettier = defaultConfigFor('package.json');
  31. t.deepEqual(JSON.parse(result), before);
  32. });
  33. test('YAML supports infinity, leave rangeEnd in', t => {
  34. t.plan(1);
  35. const result = formats.yaml.generate();
  36. t.equal(YAML.parse(result).rangeEnd, Infinity);
  37. });
  38. test("YAML doesn't support undefined so leave out filepath and parser", t => {
  39. t.plan(2);
  40. const result = formats.yaml.generate();
  41. t.false(Object.keys(result).includes('parser'));
  42. t.false(Object.keys(result).includes('filepath'));
  43. });
  44. test("TOML doesn't support infinity, so leave out rangeEnd", t => {
  45. t.plan(1);
  46. const result = formats.toml.generate();
  47. t.false(Object.keys(result).includes('rangeEnd'));
  48. });
  49. test('JS supports undefined, so leave in parser and filepath', t => {
  50. t.plan(4);
  51. const result = eval(formats.js.generate());
  52. t.equal(result.parser, undefined);
  53. t.equal(result.filepath, undefined);
  54. t.true(Object.keys(result).includes('parser'));
  55. t.true(Object.keys(result).includes('filepath'));
  56. });