/
sprockets-plugin_spec.rb
executable file
·130 lines (109 loc) · 4.24 KB
/
sprockets-plugin_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
require 'spec_helper'
describe Sprockets::Plugin do
after :each do
Sprockets::Plugin.send :class_variable_set, :@@plugins, nil
end
describe '#append_plugin_paths' do
it 'adds paths from plugins to environments' do
dir_1 = @sandbox.directory 'plugin_1/assets'
dir_2 = @sandbox.directory 'plugin_2/assets'
dir_3 = @sandbox.directory 'plugin_3/assets'
plugin_1 = Class.new Sprockets::Plugin
plugin_1.append_path dir_1
plugin_2 = Class.new Sprockets::Plugin
plugin_2.append_path dir_2
plugin_3 = Class.new Sprockets::Plugin
plugin_3.append_path dir_3
env = Sprockets::Environment.new
env.append_plugin_paths
env.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
it 'does not add duplicate paths' do
dir_1 = @sandbox.directory 'plugin_1/assets'
dir_2 = @sandbox.directory 'plugin_2/assets'
dir_3 = @sandbox.directory 'plugin_3/assets'
plugin_1 = Class.new Sprockets::Plugin
plugin_1.append_path dir_1
env = Sprockets::Environment.new
env.append_plugin_paths
env.paths.should == [dir_1].map(&:to_s)
plugin_2 = Class.new Sprockets::Plugin
plugin_2.append_path dir_2
plugin_3 = Class.new Sprockets::Plugin
plugin_3.append_path dir_3
env.append_plugin_paths
env.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
end
describe '.append_path' do
it 'adds paths' do
dir_1 = @sandbox.directory 'plugin/assets/images'
dir_2 = @sandbox.directory 'plugin/assets/javascripts'
dir_3 = @sandbox.directory 'plugin/assets/stylesheets'
plugin = Class.new Sprockets::Plugin
plugin.append_path dir_1
plugin.append_path dir_2
plugin.append_path dir_3
plugin.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
it 'adds the paths relative to the plugin root' do
dir_1 = @sandbox.directory 'plugin/assets/images'
dir_2 = @sandbox.directory 'plugin/assets/javascripts'
dir_3 = @sandbox.directory 'plugin/assets/stylesheets'
plugin = Class.new Sprockets::Plugin
plugin.root @sandbox.join 'plugin'
plugin.append_path 'assets/images'
plugin.append_path 'assets/javascripts'
plugin.append_path 'assets/stylesheets'
plugin.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
it 'only adds existing paths' do
dir_1 = @sandbox.directory 'plugin/assets/images'
dir_2 = @sandbox.directory 'plugin/assets/javascripts'
dir_3 = @sandbox.join 'plugin/assets/stylesheets'
plugin = Class.new Sprockets::Plugin
plugin.append_path dir_1
plugin.append_path dir_2
plugin.append_path dir_3
plugin.paths.should == [dir_1, dir_2].map(&:to_s)
end
end
describe '.appends_paths' do
it 'adds multiple paths at once' do
dir_1 = @sandbox.directory 'plugin/assets/images'
dir_2 = @sandbox.directory 'plugin/assets/javascripts'
dir_3 = @sandbox.directory 'plugin/assets/stylesheets'
plugin = Class.new Sprockets::Plugin
plugin.append_path dir_1, dir_2 ,dir_3
plugin.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
end
describe '.append_paths_in' do
it 'adds paths within the given path' do
assets_dir = @sandbox.directory 'plugin/assets'
dir_1 = assets_dir.directory 'images'
dir_2 = assets_dir.directory 'javascripts'
dir_3 = assets_dir.directory 'stylesheets'
plugin = Class.new Sprockets::Plugin
plugin.append_paths_in assets_dir
plugin.paths.should == [dir_1, dir_2, dir_3].map(&:to_s)
end
end
describe '.root' do
it 'converts the given path to a Pathname object' do
plugin_path = @sandbox.join 'plugin'
plugin = Class.new Sprockets::Plugin
plugin.root plugin_path.to_s
plugin.root.should be_an_instance_of(Pathname)
plugin.root.should == plugin_path
end
end
describe '.plugins' do
it 'returns all of the plugins' do
plugin_1 = Class.new Sprockets::Plugin
plugin_2 = Class.new Sprockets::Plugin
plugin_3 = Class.new Sprockets::Plugin
Sprockets::Plugin.plugins.should == [ plugin_1, plugin_2, plugin_3 ]
end
end
end