UNPKG

2.72 kBJavaScriptView Raw
1jest.mock('../slate-rc.config');
2
3const MOCK_VALID_SLATE_RC = {
4 uuid: '9a983jf94jk42',
5};
6
7beforeEach(() => jest.resetModules());
8
9afterEach(() => require('mock-fs').restore());
10
11describe('get()', () => {
12 describe('if .slaterc exists in the `~/` directory', () => {
13 test('returns its parsed JSON contents', () => {
14 const slateRc = require('../index');
15 const mock = require('mock-fs');
16 const config = require('../slate-rc.config');
17
18 mock({[config.slateRcPath]: JSON.stringify(MOCK_VALID_SLATE_RC)});
19
20 expect(slateRc.get()).toMatchObject(MOCK_VALID_SLATE_RC);
21 });
22
23 test('throws an error if the JSON file is invalid', () => {
24 const slateRc = require('../index');
25 const SlateRcError = require('../slate-rc-error');
26 const config = require('../slate-rc.config');
27 const mock = require('mock-fs');
28
29 mock({[config.slateRcPath]: 'some invalid JSON'});
30
31 expect(() => {
32 slateRc.get();
33 }).toThrowError(SlateRcError);
34 });
35
36 test('returns null if file is empty', () => {
37 const slateRc = require('../index');
38 const config = require('../slate-rc.config');
39 const mock = require('mock-fs');
40
41 mock({[config.slateRcPath]: ''});
42
43 expect(slateRc.get()).toBe(null);
44 });
45 });
46
47 describe('if a .slaterc file does not exist in the `~/` ', () => {
48 test('returns null', () => {
49 const slateRc = require('../index');
50 const results = slateRc.get();
51
52 expect(results).toBe(null);
53 });
54 });
55});
56
57describe('generate()', () => {
58 test('creates a .slaterc file in the `~/` directory and returns its contents', () => {
59 const slateRc = require('../index');
60 const config = require('../slate-rc.config');
61 const mock = require('mock-fs');
62 const fs = require('fs');
63
64 mock();
65
66 const content = slateRc.generate();
67
68 expect(fs.existsSync(config.slateRcPath)).toBeTruthy();
69 expect(content.uuid).toBeDefined();
70 });
71
72 describe('throws an error if', () => {
73 test('.slaterc file already exists', () => {
74 const slateRc = require('../index');
75 const SlateRcError = require('../slate-rc-error');
76 const mock = require('mock-fs');
77
78 mock();
79
80 slateRc.generate();
81
82 expect(() => {
83 slateRc.generate();
84 }).toThrowError(SlateRcError);
85 });
86 });
87});
88
89describe('update()', () => {
90 test('applies any changes to the .slaterc file', () => {
91 const rc = require('../index');
92 const mock = require('mock-fs');
93 const config = require('../slate-rc.config');
94
95 mock({[config.slateRcPath]: JSON.stringify(MOCK_VALID_SLATE_RC)});
96
97 rc.update({someChange: 'value'});
98
99 expect(rc.get().someChange).toBeDefined();
100 });
101});