Skip to content

Commit 283d1ae

Browse files
committed
Add tests for non-happy paths
1 parent 220b629 commit 283d1ae

File tree

6 files changed

+73
-30
lines changed

6 files changed

+73
-30
lines changed

test/ex_css_modules/view_test.exs

Lines changed: 72 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,120 @@
11
defmodule ExCSSModules.ViewTest do
22
@example_stylesheet __ENV__.file
3-
|> Path.dirname
3+
|> Path.dirname()
44
|> Path.join("../support/stylesheet.css")
55

66
use ExUnit.Case
77

8-
defmodule ViewModuleTest do
9-
use ExCSSModules.View, stylesheet: __ENV__.file
10-
|> Path.dirname
11-
|> Path.join("../support/stylesheet.css")
8+
defmodule ViewModule.Test do
9+
use ExCSSModules.View,
10+
stylesheet:
11+
__ENV__.file
12+
|> Path.dirname()
13+
|> Path.join("../support/stylesheet.css")
1214
end
1315

14-
defmodule EmbeddedViewModuleTest do
15-
use ExCSSModules.View, stylesheet: __ENV__.file
16-
|> Path.dirname
17-
|> Path.join("../support/stylesheet.css"),
18-
embed_stylesheet: true
16+
defmodule ViewModule.Embedded.Test do
17+
use ExCSSModules.View,
18+
stylesheet:
19+
__ENV__.file
20+
|> Path.dirname()
21+
|> Path.join("../support/stylesheet.css"),
22+
embed_stylesheet: true
23+
end
24+
25+
defmodule ViewModule.StylesheetDefinitions.EmptyObject.Test do
26+
use ExCSSModules.View,
27+
stylesheet:
28+
__ENV__.file
29+
|> Path.dirname()
30+
|> Path.join("../support/stylesheet_definitions_with_empty_object.css")
31+
end
32+
33+
defmodule ViewModule.StylesheetDefinitions.EmptyFile.Test do
34+
use ExCSSModules.View,
35+
stylesheet:
36+
__ENV__.file
37+
|> Path.dirname()
38+
|> Path.join("../support/empty_file.css")
39+
end
40+
41+
defmodule ViewModule.StylesheetDefinitions.NoFile.Test do
42+
use ExCSSModules.View,
43+
stylesheet:
44+
__ENV__.file
45+
|> Path.dirname()
46+
|> Path.join("../support/no_stylesheet_definition.css")
1947
end
2048

2149
describe "stylesheet_definition/0" do
2250
test "gets the stylesheet string" do
23-
assert ViewModuleTest.stylesheet_definition
24-
== Path.expand(@example_stylesheet)
51+
assert ViewModule.Test.stylesheet_definition() ==
52+
Path.expand(@example_stylesheet)
2553
end
2654

2755
test "gets the embedded stylesheet" do
28-
assert EmbeddedViewModuleTest.stylesheet_definition
29-
== ExCSSModules.stylesheet(@example_stylesheet)
56+
assert ViewModule.Embedded.Test.stylesheet_definition() ==
57+
ExCSSModules.stylesheet(@example_stylesheet)
3058
end
3159
end
3260

3361
describe "stylesheet/0" do
3462
test "calls the stylesheet" do
35-
assert ViewModuleTest.stylesheet
36-
== ExCSSModules.stylesheet(@example_stylesheet)
63+
assert ViewModule.Test.stylesheet() ==
64+
ExCSSModules.stylesheet(@example_stylesheet)
65+
end
66+
67+
test "returns an empty map if the stylesheet definitions json file contains just an empty object" do
68+
assert ViewModule.StylesheetDefinitions.EmptyObject.Test.stylesheet() == %{}
69+
end
70+
71+
test "returns an empty map if the stylesheet definitions json file is empty" do
72+
assert ViewModule.StylesheetDefinitions.EmptyFile.Test.stylesheet() == %{}
73+
end
74+
75+
test "returns an empty map if the stylesheet definitions json file does not exist" do
76+
assert ViewModule.StylesheetDefinitions.NoFile.Test.stylesheet() == %{}
3777
end
3878
end
3979

4080
describe "class_selector/1" do
4181
test "prepends the class_name with a dot" do
42-
assert ViewModuleTest.class_selector("title") ==
43-
ExCSSModules.class_selector(@example_stylesheet, "title")
82+
assert ViewModule.Test.class_selector("title") ==
83+
ExCSSModules.class_selector(@example_stylesheet, "title")
4484
end
4585
end
4686

4787
describe "class_name/1" do
4888
test "calls the css/2 method on ExCSSModules" do
49-
assert ViewModuleTest.class_name("title") ==
50-
ExCSSModules.class_name(@example_stylesheet, "title")
89+
assert ViewModule.Test.class_name("title") ==
90+
ExCSSModules.class_name(@example_stylesheet, "title")
5191
end
5292
end
5393

5494
describe "class_name/2" do
5595
test "calls the css/3 method on ExCSSModules" do
56-
assert ViewModuleTest.class_name("title", true) ==
57-
ExCSSModules.class_name(@example_stylesheet, "title", true)
58-
assert ViewModuleTest.class_name("title", false) ==
59-
ExCSSModules.class_name(@example_stylesheet, "title", false)
96+
assert ViewModule.Test.class_name("title", true) ==
97+
ExCSSModules.class_name(@example_stylesheet, "title", true)
98+
99+
assert ViewModule.Test.class_name("title", false) ==
100+
ExCSSModules.class_name(@example_stylesheet, "title", false)
60101
end
61102
end
62103

63104
describe "class/1" do
64105
test "calls the class/2 method on ExCSSModules" do
65-
assert ViewModuleTest.class("title") ==
66-
ExCSSModules.class(@example_stylesheet, "title")
106+
assert ViewModule.Test.class("title") ==
107+
ExCSSModules.class(@example_stylesheet, "title")
67108
end
68109
end
69110

70111
describe "class/2" do
71112
test "calls the class/3 method on ExCSSModules" do
72-
assert ViewModuleTest.class("title", true) ==
73-
ExCSSModules.class(@example_stylesheet, "title", true)
74-
assert ViewModuleTest.class("title", false) ==
75-
ExCSSModules.class(@example_stylesheet, "title", false)
113+
assert ViewModule.Test.class("title", true) ==
114+
ExCSSModules.class(@example_stylesheet, "title", true)
115+
116+
assert ViewModule.Test.class("title", false) ==
117+
ExCSSModules.class(@example_stylesheet, "title", false)
76118
end
77119
end
78120
end

test/support/empty_file.css

Whitespace-only changes.

test/support/empty_file.css.json

Whitespace-only changes.

test/support/no_stylesheet_definitions.css

Whitespace-only changes.

test/support/stylesheet_definitions_with_empty_object.css

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

0 commit comments

Comments
 (0)