UNPKG

4.72 kBJavaScriptView Raw
1// Copyright (c) 2016-2019 Electric Imp
2// This file is licensed under the MIT License
3// http://opensource.org/licenses/MIT
4
5'use strict';
6
7const Builder = require('../src');
8const Machine = require('../src/Machine');
9const Log = require('log');
10const fs = require('fs');
11
12const backslashToSlash = require('./backslashToSlash')
13
14describe('Builder', () => {
15
16 let builder;
17
18 beforeEach(() => {
19 builder = new Builder();
20 builder.machine.suppressDupWarning = true;
21 builder.machine.readers.github.token = process.env.SPEC_GITHUB_TOKEN;
22
23 // @see https://www.npmjs.com/package/log#log-levels
24 builder.logger = new Log(process.env.SPEC_LOGLEVEL || 'error');
25
26 });
27
28 it('should add end of file symbol at the end of local files', () => {
29
30 let output = builder.machine.execute(`
31 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
32 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
33 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
34 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
35 `);
36 expect(output.split('\n').length).toBe(6);
37
38 output = builder.machine.execute(`
39 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
40 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
41 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
42 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/OneLineSample.nut"
43 `);
44 expect(output.split('\n').length).toBe(6);
45
46 output = builder.machine.execute(`
47 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
48 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
49 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
50 @include "${backslashToSlash(__dirname)}/fixtures/sample-11/LineBrakeSample.nut"
51 `);
52 expect(output.split('\n').length).toBe(6);
53 });
54
55
56 it('should add end of line symbol at the end of files included from GitHub', () => {
57 const githubPrefix = "github:electricimp/Builder/spec";
58
59 let output = builder.machine.execute(`
60 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
61 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
62 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
63 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
64 `);
65 expect(output.split('\n').length).toBe(6);
66
67 output = builder.machine.execute(`
68 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
69 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
70 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
71 @include "${githubPrefix}/fixtures/sample-11/OneLineSample.nut"
72 `);
73 expect(output.split('\n').length).toBe(6);
74
75 output = builder.machine.execute(`
76 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
77 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
78 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
79 @include "${githubPrefix}/fixtures/sample-11/LineBrakeSample.nut"
80 `);
81 expect(output.split('\n').length).toBe(6);
82 });
83
84 it('should have empty lines at the end of the files included from http', () => {
85 const websitePrefix = "https://raw.githubusercontent.com/electricimp/Builder/develop/spec";
86
87 let output = builder.machine.execute(`
88 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
89 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
90 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
91 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
92 `);
93 expect(output.split('\n').length).toBe(6);
94
95 output = builder.machine.execute(`
96 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
97 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
98 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
99 @include "${websitePrefix}/fixtures/sample-11/OneLineSample.nut"
100 `);
101 expect(output.split('\n').length).toBe(6);
102
103 output = builder.machine.execute(`
104 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
105 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
106 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
107 @include "${websitePrefix}/fixtures/sample-11/LineBrakeSample.nut"
108 `);
109 expect(output.split('\n').length).toBe(6);
110 });
111
112
113});