aboutsummaryrefslogtreecommitdiff
path: root/spec/03-environment_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/03-environment_spec.lua')
-rw-r--r--spec/03-environment_spec.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/spec/03-environment_spec.lua b/spec/03-environment_spec.lua
new file mode 100644
index 0000000..842ed6f
--- /dev/null
+++ b/spec/03-environment_spec.lua
@@ -0,0 +1,81 @@
1-- Import the library that contains the environment-related functions
2local system = require("system")
3
4describe("Environment Variables:", function()
5
6 describe("setenv()", function()
7
8 it("should set an environment variable", function()
9 assert.is_true(system.setenv("TEST_VAR", "test_value"))
10 assert.is_equal("test_value", system.getenv("TEST_VAR"))
11 end)
12
13
14 local func = system.windows and pending or it --pending on Windows
15 -- Windows will unset a variable if set as an empty string
16 func("should set an empty environment variable value", function()
17 assert.is_true(system.setenv("TEST_VAR", ""))
18 assert.is_equal("", system.getenv("TEST_VAR"))
19 end)
20
21
22 it("should unset an environment variable on nil", function()
23 assert.is_true(system.setenv("TEST_VAR", "test_value"))
24 assert.is_equal("test_value", system.getenv("TEST_VAR"))
25
26 assert.is_true(system.setenv("TEST_VAR", nil))
27 assert.is_nil(system.getenv("TEST_VAR"))
28 end)
29
30
31 it("should error on input bad type", function()
32 assert.has_error(function()
33 system.setenv("TEST_VAR", {})
34 end)
35 assert.has_error(function()
36 system.setenv({}, "test_value")
37 end)
38 end)
39
40
41 it("should return success on deleting a variable that doesn't exist", function()
42 if system.getenv("TEST_VAR") ~= nil then
43 -- clear if it was already set
44 assert.is_true(system.setenv("TEST_VAR", nil))
45 end
46
47 assert.is_true(system.setenv("TEST_VAR", nil)) -- clear again shouldn't fail
48 end)
49
50 end)
51
52
53
54 describe("getenvs()", function()
55
56 it("should list environment variables", function()
57 assert.is_true(system.setenv("TEST_VAR1", nil))
58 assert.is_true(system.setenv("TEST_VAR2", nil))
59 assert.is_true(system.setenv("TEST_VAR3", nil))
60 local envVars1 = system.getenvs()
61 assert.is_true(system.setenv("TEST_VAR1", "test_value1"))
62 assert.is_true(system.setenv("TEST_VAR2", "test_value2"))
63 assert.is_true(system.setenv("TEST_VAR3", "test_value3"))
64 local envVars2 = system.getenvs()
65 assert.is_true(system.setenv("TEST_VAR1", nil))
66 assert.is_true(system.setenv("TEST_VAR2", nil))
67 assert.is_true(system.setenv("TEST_VAR3", nil))
68
69 for k,v in pairs(envVars1) do
70 envVars2[k] = nil
71 end
72 assert.are.same({
73 TEST_VAR1 = "test_value1",
74 TEST_VAR2 = "test_value2",
75 TEST_VAR3 = "test_value3",
76 }, envVars2)
77 end)
78
79 end)
80
81end)