slather 0.0.3 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,219 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
2
-
3
- describe Slather::Project do
4
-
5
- let(:fixtures_project) do
6
- Slather::Project.any_instance.stub(:configure_from_yml)
7
- Slather::Project.open(FIXTURES_PROJECT_PATH)
8
- end
9
-
10
- describe "::open" do
11
- it "should return a project instance that has been configured from yml" do
12
- expect_any_instance_of(Slather::Project).to receive(:configure_from_yml)
13
- expect(fixtures_project).not_to be_nil
14
- end
15
- end
16
-
17
- describe "#derived_data_dir" do
18
- it "should return the system's derived data directory" do
19
- expect(fixtures_project.send(:derived_data_dir)).to eq(File.expand_path('~') + "/Library/Developer/Xcode/DerivedData/")
20
- end
21
- end
22
-
23
- describe "#build_directory" do
24
- it "should return the build_directory property, if it has been explicitly set" do
25
- build_directory_mock = double(String)
26
- fixtures_project.build_directory = build_directory_mock
27
- expect(fixtures_project.build_directory).to eq(build_directory_mock)
28
- end
29
-
30
- it "should return the derived_data_dir if no build_directory has been set" do
31
- derived_data_dir_mock = double(String)
32
- fixtures_project.stub(:derived_data_dir).and_return(derived_data_dir_mock)
33
- expect(fixtures_project.build_directory).to eq(derived_data_dir_mock)
34
- end
35
- end
36
-
37
- describe "::yml" do
38
- before(:each) { Slather::Project.instance_variable_set("@yml", nil) }
39
-
40
- context ".slather.yml file exists" do
41
- before(:all) { File.open(".slather.yml", "w") { |f| f.write("two: 2") } }
42
- after(:all) { File.delete(".slather.yml") }
43
-
44
- it "should load and return .slather.yml, if it exists" do
45
- expect(Slather::Project.yml).to eq({"two" => 2})
46
- end
47
- end
48
-
49
- context ".slather.yml file doesn't exist" do
50
- it "should return an empy hash" do
51
- expect(Slather::Project.yml).to eq({})
52
- end
53
- end
54
- end
55
-
56
- describe "#coverage_files" do
57
- class SpecCoverageFile < Slather::CoverageFile
58
- end
59
-
60
- before(:each) do
61
- Dir.stub(:[]).and_call_original
62
- Dir.stub(:[]).with("#{fixtures_project.build_directory}/**/*.gcno").and_return(["/some/path/fixtures.gcno",
63
- "/some/path/peekaview.gcno",
64
- "/some/path/fixturesTests.gcno",
65
- "/some/path/peekaviewTests.gcno",
66
- "/some/path/NotInProject.gcno",
67
- "/some/path/NSRange.gcno"])
68
- fixtures_project.stub(:coverage_file_class).and_return(SpecCoverageFile)
69
- end
70
-
71
- it "should return coverage file objects of type coverage_file_class for unignored project files" do
72
- fixtures_project.ignore_list = ["*fixturesTests*"]
73
- coverage_files = fixtures_project.send(:coverage_files)
74
- coverage_files.each { |cf| expect(cf.kind_of?(SpecCoverageFile)).to be_truthy }
75
- expect(coverage_files.map { |cf| cf.source_file_pathname.basename.to_s }).to eq(["fixtures.m", "peekaview.m"])
76
- end
77
-
78
- it "should raise an exception if no unignored project coverage file files were found" do
79
- fixtures_project.ignore_list = ["*fixturesTests*", "*fixtures*"]
80
- expect {fixtures_project.send(:coverage_files)}.to raise_error(StandardError)
81
- end
82
- end
83
-
84
- describe "#configure_from_yml" do
85
- it "should configure all properties from the yml" do
86
- unstubbed_project = Slather::Project.open(FIXTURES_PROJECT_PATH)
87
- expect(unstubbed_project).to receive(:configure_build_directory_from_yml)
88
- expect(unstubbed_project).to receive(:configure_ignore_list_from_yml)
89
- expect(unstubbed_project).to receive(:configure_ci_service_from_yml)
90
- expect(unstubbed_project).to receive(:configure_coverage_service_from_yml)
91
- unstubbed_project.configure_from_yml
92
- end
93
- end
94
-
95
- describe "#configure_ignore_list_from_yml" do
96
- it "should set the ignore_list if it has been provided in the yml and has not already been set" do
97
- Slather::Project.stub(:yml).and_return({"ignore" => ["test", "ing"] })
98
- fixtures_project.configure_ignore_list_from_yml
99
- expect(fixtures_project.ignore_list).to eq(["test", "ing"])
100
- end
101
-
102
- it "should force the ignore_list into an array" do
103
- Slather::Project.stub(:yml).and_return({"ignore" => "test" })
104
- fixtures_project.configure_ignore_list_from_yml
105
- expect(fixtures_project.ignore_list).to eq(["test"])
106
- end
107
-
108
- it "should not set the ignore_list if it has already been set" do
109
- Slather::Project.stub(:yml).and_return({"ignore" => ["test", "ing"] })
110
- fixtures_project.ignore_list = ["already", "set"]
111
- fixtures_project.configure_ignore_list_from_yml
112
- expect(fixtures_project.ignore_list).to eq(["already", "set"])
113
- end
114
-
115
- it "should default the ignore_list to an empty array if nothing is provided in the yml" do
116
- Slather::Project.stub(:yml).and_return({})
117
- fixtures_project.configure_ignore_list_from_yml
118
- expect(fixtures_project.ignore_list).to eq([])
119
- end
120
- end
121
-
122
- describe "#configure_build_directory_from_yml" do
123
- it "should set the build_directory if it has been provided in the yml and has not already been set" do
124
- Slather::Project.stub(:yml).and_return({"build_directory" => "/some/path"})
125
- fixtures_project.configure_build_directory_from_yml
126
- expect(fixtures_project.build_directory).to eq("/some/path")
127
- end
128
-
129
- it "should not set the build_directory if it has already been set" do
130
- Slather::Project.stub(:yml).and_return({"build_directory" => "/some/path"})
131
- fixtures_project.build_directory = "/already/set"
132
- fixtures_project.configure_build_directory_from_yml
133
- expect(fixtures_project.build_directory).to eq("/already/set")
134
- end
135
-
136
- it "should default the build_directory to derived data if nothing is provided in the yml" do
137
- Slather::Project.stub(:yml).and_return({})
138
- fixtures_project.configure_build_directory_from_yml
139
- expect(fixtures_project.build_directory).to eq(fixtures_project.send(:derived_data_dir))
140
- end
141
- end
142
-
143
- describe "#configure_ci_service_from_yml" do
144
- it "should set the ci_service if it has been provided in the yml and has not already been set" do
145
- Slather::Project.stub(:yml).and_return({"ci_service" => "some_service"})
146
- fixtures_project.configure_ci_service_from_yml
147
- expect(fixtures_project.ci_service).to eq(:some_service)
148
- end
149
-
150
- it "should not set the ci_service if it has already been set" do
151
- Slather::Project.stub(:yml).and_return({"ci_service" => "some service"})
152
- fixtures_project.ci_service = "already_set"
153
- fixtures_project.configure_ci_service_from_yml
154
- expect(fixtures_project.ci_service).to eq(:already_set)
155
- end
156
-
157
- it "should default the ci_service to :travis_ci if nothing is provided in the yml" do
158
- Slather::Project.stub(:yml).and_return({})
159
- fixtures_project.configure_ci_service_from_yml
160
- expect(fixtures_project.ci_service).to eq(:travis_ci)
161
- end
162
- end
163
-
164
- describe "#ci_service=" do
165
- it "should set the ci_service as a symbol" do
166
- fixtures_project.ci_service = "foobar"
167
- expect(fixtures_project.ci_service).to eq(:foobar)
168
- end
169
- end
170
-
171
- describe "#configure_coverage_service_from_yml" do
172
- it "should set the coverage_service if it has been provided by the yml" do
173
- Slather::Project.stub(:yml).and_return({"coverage_service" => "some_service"})
174
- expect(fixtures_project).to receive(:coverage_service=).with("some_service")
175
- fixtures_project.configure_coverage_service_from_yml
176
- end
177
-
178
- it "should default the coverage_service to :terminal if nothing is provided in the yml" do
179
- Slather::Project.stub(:yml).and_return({})
180
- expect(fixtures_project).to receive(:coverage_service=).with(:terminal)
181
- fixtures_project.configure_coverage_service_from_yml
182
- end
183
-
184
- it "should not set the coverage_service if it has already been set" do
185
- Slather::Project.stub(:yml).and_return({"coverage_service" => "some_service" })
186
- fixtures_project.stub(:coverage_service).and_return("already set")
187
- expect(fixtures_project).to_not receive(:coverage_service=)
188
- fixtures_project.configure_coverage_service_from_yml
189
- end
190
- end
191
-
192
- describe "#coverage_service=" do
193
- it "should extend Slather::CoverageService::Coveralls and set coverage_service = :coveralls if given coveralls" do
194
- expect(fixtures_project).to receive(:extend).with(Slather::CoverageService::Coveralls)
195
- fixtures_project.coverage_service = "coveralls"
196
- expect(fixtures_project.coverage_service).to eq(:coveralls)
197
- end
198
-
199
- it "should extend Slather::CoverageService::SimpleOutput and set coverage_service = :terminal if given terminal" do
200
- expect(fixtures_project).to receive(:extend).with(Slather::CoverageService::SimpleOutput)
201
- fixtures_project.coverage_service = "terminal"
202
- expect(fixtures_project.coverage_service).to eq(:terminal)
203
- end
204
-
205
- it "should raise an exception if it does not recognize the coverage service" do
206
- expect { fixtures_project.coverage_service = "xcode bots, lol" }.to raise_error(StandardError)
207
- end
208
- end
209
-
210
- describe "#setup_for_coverage" do
211
- it "should enable the correct flags to generate test coverage on all of the build_configurations build settings" do
212
- fixtures_project.setup_for_coverage
213
- fixtures_project.build_configurations.each do |build_configuration|
214
- expect(build_configuration.build_settings["GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"]).to eq("YES")
215
- expect(build_configuration.build_settings["GCC_GENERATE_TEST_COVERAGE_FILES"]).to eq("YES")
216
- end
217
- end
218
- end
219
- end
data/spec/spec_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- require 'bundler/setup'
2
- Bundler.setup
3
-
4
- require 'slather'
5
- require 'pry'
6
-
7
- FIXTURES_PROJECT_PATH = File.join(File.dirname(__FILE__), 'fixtures/fixtures.xcodeproj')
8
-
9
- RSpec.configure do |config|
10
- end