Skip to content

Commit 42c9e75

Browse files
committed
Updated a bunch of tests
1 parent 4108a8e commit 42c9e75

File tree

8 files changed

+81
-11
lines changed

8 files changed

+81
-11
lines changed

ludobits/m/settings.lua

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,37 @@ local savetable = require "ludobits.m.io.savetable"
22

33
local M = {}
44

5-
local settings = savetable.open("__settings").load() or {}
5+
local settings_filename
6+
local settings
67

7-
--- Save settings to disk. The settings will be saved to a file named __settings
8-
function M.save()
9-
savetable.open("__settings").save(settings)
8+
--- Load settings from disk
9+
-- @param filename File to load from or nil for the default file ("__settings")
10+
function M.load(filename)
11+
settings_filename = filename or "__settings"
12+
settings = savetable.open(settings_filename).load() or {}
1013
end
1114

15+
--- Get the filename of the currently loaded settings file
16+
-- @return Filename
17+
function M.filename()
18+
return settings_filename
19+
end
20+
21+
--- Check if the settings are empty
22+
-- @return true if empty
23+
function M.is_empty()
24+
return next(settings) == nil
25+
end
26+
27+
--- Save settings to disk
28+
-- @param filename File to save to or nil for the currently loaded file
29+
function M.save(filename)
30+
settings_filename = filename or settings_filename
31+
savetable.open(settings_filename).save(settings)
32+
end
33+
34+
M.load()
35+
1236
local mt = {}
1337
function mt.__index(t, k)
1438
return settings[k]

test/test_broadcast.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
local mock = require "deftest.mock.mock"
2+
local unload = require "deftest.util.unload"
23

34
return function()
4-
local broadcast = require "ludobits.m.broadcast"
5+
local broadcast
56

67
describe("broadcast", function()
78
before(function()
9+
unload.unload("ludobits.")
10+
broadcast = require "ludobits.m.broadcast"
811
mock.mock(msg)
912
msg.post.replace(function() end)
1013
end)

test/test_file.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
local mock = require "deftest.mock.mock"
22
local mock_fs = require "deftest.mock.fs"
3+
local unload = require "deftest.util.unload"
34

45
return function()
5-
local file = require "ludobits.m.io.file"
6+
local file
67

78
describe("file", function()
89
before(function()
10+
unload.unload("ludobits.")
911
mock_fs.mock()
12+
file = require "ludobits.m.io.file"
1013
end)
1114

1215
after(function()

test/test_flow.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
local mock = require "deftest.mock.mock"
2+
local unload = require "deftest.util.unload"
23

34
return function()
45
local flow
@@ -9,6 +10,7 @@ return function()
910

1011
describe("flow", function()
1112
before(function()
13+
unload.unload("ludobits.")
1214
flow = require "ludobits.m.flow"
1315
mock.mock(msg)
1416
msg.post.replace(function() end)

test/test_listener.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
local mock = require "deftest.mock.mock"
2+
local unload = require "deftest.util.unload"
23

34
return function()
4-
local listener = nil
5+
local listener
56

67
describe("listener", function()
78
before(function()
9+
unload.unload("ludobits.")
810
listener = require "ludobits.m.listener"
911
mock.mock(msg)
1012
msg.post.replace(function() end)

test/test_savefile.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
local mock = require "deftest.mock.mock"
22
local mock_fs = require "deftest.mock.fs"
3+
local unload = require "deftest.util.unload"
34

45
return function()
5-
local savefile = require "ludobits.m.io.savefile"
6+
local savefile
67

78
describe("savefile", function()
89
before(function()
10+
unload.unload("ludobits.")
911
mock_fs.mock()
12+
savefile = require "ludobits.m.io.savefile"
1013
end)
1114

1215
after(function()

test/test_savetable.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
local mock = require "deftest.mock.mock"
22
local mock_fs = require "deftest.mock.fs"
3+
local unload = require "deftest.util.unload"
34

45
return function()
5-
local savetable = require "ludobits.m.io.savetable"
6+
local savetable
67

78
describe("savetable", function()
89
before(function()
10+
unload.unload("ludobits.")
911
mock_fs.mock()
12+
savetable = require "ludobits.m.io.savetable"
1013
end)
1114

1215
after(function()

test/test_settings.lua

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
local mock = require "deftest.mock.mock"
22
local mock_fs = require "deftest.mock.fs"
3+
local unload = require "deftest.util.unload"
34

45
return function()
5-
local settings = require "ludobits.m.settings"
6+
local settings
67

78
describe("settings", function()
89
before(function()
10+
unload.unload("ludobits.")
911
mock_fs.mock()
12+
settings = require "ludobits.m.settings"
1013
end)
1114

1215
after(function()
1316
mock_fs.unmock()
1417
end)
1518

1619
it("should start empty", function()
17-
assert(settings.foo == nil)
20+
assert(settings.is_empty())
1821
end)
1922

2023
it("should be possible to set and get values", function()
@@ -24,6 +27,7 @@ return function()
2427
settings.boo = "car"
2528
assert(settings.foo == "bar")
2629
assert(settings.boo == "car")
30+
assert(not settings.is_empty())
2731
end)
2832

2933
it("should be possible to set, save and later load values", function()
@@ -39,5 +43,31 @@ return function()
3943
assert(newsettings.foo == "bar")
4044
assert(newsettings.boo == "car")
4145
end)
46+
47+
it("should be possible to load and save to multiple files", function()
48+
-- set and save to default file
49+
assert(settings.is_empty())
50+
settings.foo = "foodefault"
51+
settings.save()
52+
53+
-- set and save to file1
54+
settings.load("file1")
55+
assert(settings.filename() == "file1")
56+
assert(settings.is_empty())
57+
settings.foo = "foofile1"
58+
settings.save()
59+
60+
-- load default file again and save it to a file2
61+
settings.load()
62+
assert(settings.foo == "foodefault")
63+
settings.foo = "foofile2"
64+
settings.save("file2")
65+
assert(settings.filename() == "file2")
66+
67+
-- load file1 and make sure it is unchanged
68+
settings.load("file1")
69+
assert(settings.filename() == "file1")
70+
assert(settings.foo == "foofile1")
71+
end)
4272
end)
4373
end

0 commit comments

Comments
 (0)