UNPKG

2.33 kBJavaScriptView Raw
1const path = require('path');
2const assert = require('assert');
3const execFileSync = require('child_process').execFileSync;
4const mocha = require('mocha');
5
6const { describe, it } = mocha;
7
8const execCLI = input =>
9 execFileSync(path.resolve(__dirname, '../../lib/cli.js'), {
10 input,
11 encoding: 'utf8',
12 });
13
14describe('blocks', () => {
15 it('function declaration 1', () => {
16 const input = `
17function f(){a();b();}
18`;
19 const output = `
20function f() {
21 a();
22 b();
23}
24`;
25 assert.equal(execCLI(input), output);
26 });
27
28 it('function declaration 2', () => {
29 const input = `
30function f(){/* comment */a();b();}
31`;
32 const output = `
33function f() { /* comment */
34 a();
35 b();
36}
37`;
38 assert.equal(execCLI(input), output);
39 });
40
41 it('program 1', () => {
42 const input = `
43var x=1;var y=2;console.log(x+y);
44`;
45 const output = `
46var x = 1;
47var y = 2;
48console.log(x + y);
49`;
50 assert.equal(execCLI(input), output);
51 });
52});
53
54describe('arrays', () => {
55 it('variable declaration 1', () => {
56 const input = `
57var x=[1,2,3,4,5];
58`;
59 const output = `
60var x = [1, 2, 3, 4, 5];
61`;
62 assert.equal(execCLI(input), output);
63 });
64});
65
66describe('objects', () => {
67 it('object declaration 1', () => {
68 const input = `
69var x={a:1,b:2,c:3};
70`;
71 const output = `
72var x = { a: 1, b: 2, c: 3 };
73`;
74 assert.equal(execCLI(input), output);
75 });
76});
77
78describe('objects in arrays', () => {
79 it('object/array declaration 1', () => {
80 const input = `
81var x=[{a:1},{b:2},{c:3}];
82`;
83 const output = `
84var x = [{ a: 1 }, { b: 2 }, { c: 3 }];
85`;
86 assert.equal(execCLI(input), output);
87 });
88
89 it('object/array declaration 2', () => {
90 const input = `
91var x=[{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}];
92`;
93 const output = `
94var x = [{
95 a: 1,
96 b: 2,
97 c: 3,
98}, {
99 a: 1,
100 b: 2,
101 c: 3,
102}, {
103 a: 1,
104 b: 2,
105 c: 3,
106}, {
107 a: 1,
108 b: 2,
109 c: 3,
110}, {
111 a: 1,
112 b: 2,
113 c: 3,
114}];
115`;
116 assert.equal(execCLI(input), output);
117 });
118});
119
120describe('arrays in objects', () => {
121 it('array/object declaration 1', () => {
122 const input = `
123var x={a:[1,2,3],b:[1,2,3],c:[1,2,3],d:[1,2,3],e:[1,2,3]};
124`;
125 const output = `
126var x = {
127 a: [1, 2, 3],
128 b: [1, 2, 3],
129 c: [1, 2, 3],
130 d: [1, 2, 3],
131 e: [1, 2, 3],
132};
133`;
134 assert.equal(execCLI(input), output);
135 });
136});