UNPKG

2.11 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 expression 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('program 1', () => {
29 const input = `
30var x=1;var y=2;console.log(x+y);
31`;
32 const output = `
33var x = 1;
34var y = 2;
35console.log(x + y);
36`;
37 assert.equal(execCLI(input), output);
38 });
39});
40
41describe('arrays', () => {
42 it('variable declaration 1', () => {
43 const input = `
44var x=[1,2,3,4,5];
45`;
46 const output = `
47var x = [1, 2, 3, 4, 5];
48`;
49 assert.equal(execCLI(input), output);
50 });
51});
52
53describe('objects', () => {
54 it('object declaration 1', () => {
55 const input = `
56var x={a:1,b:2,c:3};
57`;
58 const output = `
59var x = { a: 1, b: 2, c: 3 };
60`;
61 assert.equal(execCLI(input), output);
62 });
63});
64
65describe('objects in arrays', () => {
66 it('object/array declaration 1', () => {
67 const input = `
68var x=[{a:1},{b:2},{c:3}];
69`;
70 const output = `
71var x = [{ a: 1 }, { b: 2 }, { c: 3 }];
72`;
73 assert.equal(execCLI(input), output);
74 });
75
76 it('object/array declaration 2', () => {
77 const input = `
78var 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}];
79`;
80 const output = `
81var x = [{
82 a: 1,
83 b: 2,
84 c: 3,
85}, {
86 a: 1,
87 b: 2,
88 c: 3,
89}, {
90 a: 1,
91 b: 2,
92 c: 3,
93}, {
94 a: 1,
95 b: 2,
96 c: 3,
97}, {
98 a: 1,
99 b: 2,
100 c: 3,
101}];
102`;
103 assert.equal(execCLI(input), output);
104 });
105});
106
107describe('arrays in objects', () => {
108 it('array/object declaration 1', () => {
109 const input = `
110var x={a:[1,2,3],b:[1,2,3],c:[1,2,3],d:[1,2,3],e:[1,2,3]};
111`;
112 const output = `
113var x = {
114 a: [1, 2, 3],
115 b: [1, 2, 3],
116 c: [1, 2, 3],
117 d: [1, 2, 3],
118 e: [1, 2, 3],
119};
120`;
121 assert.equal(execCLI(input), output);
122 });
123});