UNPKG

6.44 kBtext/coffeescriptView Raw
1suite = require 'jasmine-node'
2Js = require './../lib/js'
3Css = require './../lib/css'
4helper = require './helper'
5fs = require 'fs'
6
7describe 'When adding files', ->
8 beforeEach ->
9 helper.beforeEach()
10 @js = new Js(staticRoot:"#{__dirname}/files/public", staticUrlRoot:'/')
11 @css = new Css(staticRoot:"#{__dirname}/files/public", staticUrlRoot:'/')
12
13 it 'should add the correct paths when adding a js file', ->
14 @js.addFile(__dirname + '/files/js/1.js')
15 expect(@js.files.length).toEqual(1)
16 file = @js.files[0]
17
18 expect(file.file).toEqual("#{__dirname}/files/public/generated/js/1.js")
19 expect(file.origFile).toEqual(__dirname + '/files/js/1.js')
20 expect(file.url).toEqual('/generated/js/1.js')
21
22 it 'should add the correct paths when adding a coffee file', ->
23 @js.addFile(__dirname + '/files/coffee/1.coffee')
24 expect(@js.files.length).toEqual(1)
25 file = @js.files[0]
26
27 expect(file.file).toEqual("#{__dirname}/files/public/generated/coffee/1.js")
28 expect(file.origFile).toEqual(__dirname + '/files/coffee/1.coffee')
29 expect(file.url).toEqual('/generated/coffee/1.js')
30
31 it 'should add the correct paths when adding a css file', ->
32 @css.addFile(__dirname + '/files/css/screen.css')
33 expect(@css.files.length).toEqual(1)
34 file = @css.files[0]
35
36 expect(file.file).toEqual("#{__dirname}/files/public/generated/css/screen.css")
37 expect(file.origFile).toEqual(__dirname + '/files/css/screen.css')
38 expect(file.url).toEqual('/generated/css/screen.css')
39
40 it 'should add the correct paths when adding a styl file', ->
41 @css.addFile(__dirname + '/files/stylus/main.styl')
42 expect(@css.files.length).toEqual(1)
43 file = @css.files[0]
44
45 expect(file.file).toEqual("#{__dirname}/files/public/generated/stylus/main.css")
46 expect(file.origFile).toEqual(__dirname + '/files/stylus/main.styl')
47 expect(file.url).toEqual('/generated/stylus/main.css')
48
49 it 'should not point to generated/ when adding a js file already in staticRoot', ->
50 @js.addFile(__dirname + '/files/public/jquery.js')
51 expect(@js.files.length).toEqual(1)
52 file = @js.files[0]
53
54 expect(file.file).toEqual("#{__dirname}/files/public/jquery.js")
55 expect(file.origFile).toEqual("#{__dirname}/files/public/jquery.js")
56 expect(file.url).toEqual('/jquery.js')
57
58 it 'should not point to generated/ when adding a css file already in staticRoot', ->
59 @css.addFile(__dirname + '/files/public/styles/bootstrap.css')
60 expect(@css.files.length).toEqual(1)
61 file = @css.files[0]
62
63 expect(file.file).toEqual("#{__dirname}/files/public/styles/bootstrap.css")
64 expect(file.origFile).toEqual("#{__dirname}/files/public/styles/bootstrap.css")
65 expect(file.url).toEqual('/styles/bootstrap.css')
66
67 it 'should add the correct paths when adding a coffee file inside staticRoot', ->
68 @js.addFile(__dirname + '/files/public/main.coffee')
69 expect(@js.files.length).toEqual(1)
70 file = @js.files[0]
71
72 expect(file.file).toEqual("#{__dirname}/files/public/generated/main.js")
73 expect(file.origFile).toEqual(__dirname + '/files/public/main.coffee')
74 expect(file.url).toEqual('/generated/main.js')
75
76 it 'should add the correct paths when adding a styl file inside staticRoot', ->
77 @css.addFile(__dirname + '/files/public/print.styl')
78 expect(@css.files.length).toEqual(1)
79 file = @css.files[0]
80
81 expect(file.file).toEqual("#{__dirname}/files/public/generated/print.css")
82 expect(file.origFile).toEqual(__dirname + '/files/public/print.styl')
83 expect(file.url).toEqual('/generated/print.css')
84
85 it 'should not change the css file when adding a file already in staticRoot', ->
86 file = __dirname + '/files/public/styles/bootstrap.css'
87 beforeStat = fs.statSync(file)
88 @css.addFile(file)
89 afterStat = fs.statSync(file)
90 works = false
91 for key of beforeStat
92 works = true
93 expect(beforeStat[key]).toEqual(afterStat[key])
94 expect(works).toBeTruthy()
95
96 it 'should not change the js file when adding a file already in staticRoot', ->
97 file = __dirname + '/files/public/jquery.js'
98 beforeStat = fs.statSync(file)
99 @css.addFile(file)
100 afterStat = fs.statSync(file)
101 works = false
102 for key of beforeStat
103 works = true
104 expect(beforeStat[key]).toEqual(afterStat[key])
105 expect(works).toBeTruthy()
106
107 it 'should only add the file once when adding the same file twice', ->
108 @js.addFile(__dirname + '/files/coffee/1.coffee')
109 @js.addFile(__dirname + '/files/coffee/1.coffee')
110
111 expect(@js.files.length).toEqual(1)
112 file = @js.files[0]
113 expect(file.file).toEqual("#{__dirname}/files/public/generated/coffee/1.js")
114 expect(file.origFile).toEqual(__dirname + '/files/coffee/1.coffee')
115 expect(file.url).toEqual('/generated/coffee/1.js')
116
117 describe 'filtered paths', ->
118 it 'should be able to add 1.coffee using files/nested/js/*.coffee', ->
119 @js.addFile(__dirname + '/files/nested/js/*.coffee')
120 expect(@js.files.length).toEqual(1)
121 expect(@js.files[0].origFile).toEqual(__dirname + '/files/nested/js/1.coffee')
122
123 it 'should be able to add all 2 coffee files using files/nested/js/**.coffee', ->
124 @js.addFile(__dirname + '/files/nested/js/**.coffee')
125 expect(@js.files.length).toEqual(2)
126 expect(@js.files[0].origFile).toEqual(__dirname + '/files/nested/js/1.coffee')
127 expect(@js.files[1].origFile).toEqual(__dirname + '/files/nested/js/sub/2.coffee')
128
129 it 'should be able to add all 6 files using files/coffee/js/**', ->
130 @js.addFile(__dirname + '/files/nested/js/**')
131 expect(@js.files.length).toEqual(6)
132 expect(@js.files[0].origFile).toEqual(__dirname + '/files/nested/js/1.coffee')
133 expect(@js.files[1].origFile).toEqual(__dirname + '/files/nested/js/1.js')
134 expect(@js.files[2].origFile).toEqual(__dirname + '/files/nested/js/sub/2.coffee')
135 expect(@js.files[3].origFile).toEqual(__dirname + '/files/nested/js/sub/2.js')
136 expect(@js.files[4].origFile).toEqual(__dirname + '/files/nested/js/sub/sub2/3.js')
137 expect(@js.files[5].origFile).toEqual(__dirname + '/files/nested/js/sub/sub2/4.js')
138
139 it 'should add 0 files when trying /files/invalid*', ->
140 @js.addFile(__dirname + '/files/invalid*')
141 expect(@js.files.length).toEqual(0)
142
143 it 'should add 6 files when trying /files/nested/j*', ->
144 @js.addFile(__dirname + '/files/nested/j*')
145 expect(@js.files.length).toEqual(6)