forked from ostinelli/gin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings_spec.lua
96 lines (81 loc) · 3.19 KB
/
settings_spec.lua
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
require 'spec.spec_helper'
describe("Settings", function()
before_each(function()
settings = require('gin.core.settings')
end)
after_each(function()
package.loaded['config.settings'] = {} -- reset to mock
package.loaded['gin.core.settings'] = nil
settings = nil
end)
describe(".for_environment", function()
describe("the defaults", function()
describe("when in development environment", function()
it("returns the defaults", function()
local defaults = {
code_cache = false,
port = 7200,
expose_api_console = true
}
assert.are.same(defaults, settings.for_environment('development'))
end)
end)
describe("when in test environment", function()
it("returns the defaults", function()
local defaults = {
code_cache = true,
port = 7201,
expose_api_console = false
}
package.loaded['config.settings'] = false
package.loaded['config.settings'] = {}
assert.are.same(defaults, settings.for_environment('test'))
end)
end)
describe("when in production environment", function()
it("returns the defaults", function()
local defaults = {
code_cache = true,
port = 80,
expose_api_console = false
}
assert.are.same(defaults, settings.for_environment('production'))
end)
end)
describe("when in any other environments", function()
it("returns the defaults", function()
local defaults = {
code_cache = true,
port = 80,
expose_api_console = false
}
assert.are.same(defaults, settings.for_environment('something-else'))
end)
end)
end)
describe("merging values from the application settings", function()
before_each(function()
app_settings = {}
app_settings.development = {
code_cache = true,
port = 7202,
custom_setting = 'my setting'
}
app_settings.production = {
code_cache = false
}
package.loaded['config.settings'] = app_settings
end)
after_each(function()
package.loaded['config.settings'] = nil
app_settings = nil
end)
it("returns merged values", function()
local s = settings.for_environment('development')
assert.are.same(true, s.code_cache)
assert.are.same(7202, s.port)
assert.are.same('my setting', s.custom_setting)
end)
end)
end)
end)