From e6369dc7e875cef7d171ad9b90944bace847cbec Mon Sep 17 00:00:00 2001 From: Trevor Lund Date: Thu, 21 Jan 2021 11:54:42 -0600 Subject: [PATCH] Adding example of XML loading test --- .github/workflows/test.yml | 4 +-- Test/System/TestBuilds.lua | 28 ---------------- Test/TestRunner.lua | 11 ------- .../System/TestAttacks_spec.lua | 8 ++--- spec/System/TestBuilds_spec.lua | 33 +++++++++++++++++++ {Test => spec}/TestBuilds/3.13/OccVortex.lua | 0 6 files changed, 39 insertions(+), 45 deletions(-) delete mode 100644 Test/System/TestBuilds.lua delete mode 100644 Test/TestRunner.lua rename Test/System/TestAttacks.lua => spec/System/TestAttacks_spec.lua (76%) create mode 100644 spec/System/TestBuilds_spec.lua rename {Test => spec}/TestBuilds/3.13/OccVortex.lua (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6afc83f0..b3df8d34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,8 +21,8 @@ jobs: - name: Unzip for lua libs run: unzip runtime-win32.zip - name: Set LUA_PATH - run: cp lua/*.lua ./ + run: export LUA_PATH=./lua/?.lua - name: Run tests - run: busted -c Test/TestRunner.lua + run: busted -c --lua=/usr/bin/luajit --helper=HeadlessWrapper.lua . - name: Report coverage run: luacov-coveralls diff --git a/Test/System/TestBuilds.lua b/Test/System/TestBuilds.lua deleted file mode 100644 index 3a392046..00000000 --- a/Test/System/TestBuilds.lua +++ /dev/null @@ -1,28 +0,0 @@ -function TestBuilds:fetchBuilds(path, buildList) - local buildList = buildList or {} - for file in lfs.dir(path) do - if file ~= "." and file ~= ".." then - local f = path..'/'..file - local attr = lfs.attributes (f) - assert (type(attr) == "table") - if attr.mode == "directory" then - TestBuilds:fetchBuilds(f, buildList) - else - table.insert(buildList, LoadModule(f)) - end - end - end - return buildList -end - -describe("test all test builds", function() - it("finds all test builds and compares their output", function() - local buildList = TestBuilds:fetchBuilds("Test/TestBuilds") - for _, testBuild in ipairs(buildList) do - loadBuildFromXML(testBuild.xml) - for key, value in pairs(testBuild.output) do - assert.same(build.calcsTab.mainOutput[key], value) - end - end - end) -end) \ No newline at end of file diff --git a/Test/TestRunner.lua b/Test/TestRunner.lua deleted file mode 100644 index 6382d30d..00000000 --- a/Test/TestRunner.lua +++ /dev/null @@ -1,11 +0,0 @@ -require("HeadlessWrapper") -lfs = require("lfs") -require 'busted.runner'() -describe("some", function() - it("does something", function() - assert.same(1,1) - end) -end) - -LoadModule("Test/System/TestAttacks") -LoadModule("Test/System/TestBuilds") \ No newline at end of file diff --git a/Test/System/TestAttacks.lua b/spec/System/TestAttacks_spec.lua similarity index 76% rename from Test/System/TestAttacks.lua rename to spec/System/TestAttacks_spec.lua index ebfe0b56..a1ab5a3c 100644 --- a/Test/System/TestAttacks.lua +++ b/spec/System/TestAttacks_spec.lua @@ -8,18 +8,18 @@ describe("TestAttacks", function() end) it("creates an item and has the correct crit chance", function() - assert.same(build.calcsTab.mainOutput.CritChance, 0) + assert.are.equals(build.calcsTab.mainOutput.CritChance, 0) build.itemsTab:CreateDisplayItemFromRaw("New Item\nMaraketh Bow\nCrafted: true\nPrefix: None\nPrefix: None\nPrefix: None\nSuffix: None\nSuffix: None\nSuffix: None\nQuality: 20\nSockets: G-G-G-G-G-G\nLevelReq: 71\nImplicits: 1\n{tags:speed}10% increased Movement Speed") build.itemsTab:AddDisplayItem() runCallback("OnFrame") - assert.same(build.calcsTab.mainOutput.CritChance, 5.5 * build.calcsTab.mainOutput.HitChance / 100) + assert.are.equals(build.calcsTab.mainOutput.CritChance, 5.5 * build.calcsTab.mainOutput.HitChance / 100) end) it("creates an item and has the correct crit multi", function() - assert.same(1.5, build.calcsTab.mainOutput.CritMultiplier) + assert.are.equals(1.5, build.calcsTab.mainOutput.CritMultiplier) build.itemsTab:CreateDisplayItemFromRaw("New Item\nAssassin Bow\nCrafted: true\nPrefix: None\nPrefix: None\nPrefix: None\nSuffix: None\nSuffix: None\nSuffix: None\nQuality: 20\nSockets: G-G-G-G-G-G\nLevelReq: 62\nImplicits: 1\n{tags:damage,critical}{range:0.5}+(15-25)% to Global Critical Strike Multiplier") build.itemsTab:AddDisplayItem() runCallback("OnFrame") - assert.same(1.5 + .2, build.calcsTab.mainOutput.CritMultiplier) + assert.are.equals(1.5 + .2, build.calcsTab.mainOutput.CritMultiplier) end) end) \ No newline at end of file diff --git a/spec/System/TestBuilds_spec.lua b/spec/System/TestBuilds_spec.lua new file mode 100644 index 00000000..3970c323 --- /dev/null +++ b/spec/System/TestBuilds_spec.lua @@ -0,0 +1,33 @@ +local function fetchBuilds(path, buildList) + local buildList = buildList or {} + for file in lfs.dir(path) do + if file ~= "." and file ~= ".." then + local f = path..'/'..file + local attr = lfs.attributes (f) + assert (type(attr) == "table") + if attr.mode == "directory" then + fetchBuilds(f, buildList) + else + table.insert(buildList, LoadModule(f)) + end + end + end + return buildList +end + +describe("test all test builds", function() + + local buildList = fetchBuilds("spec/TestBuilds") + for _, testBuild in ipairs(buildList) do + loadBuildFromXML(testBuild.xml) + for key, value in pairs(testBuild.output) do + it("test key: " .. key, function() + if type(value) == 'number' then + value = round(value, 4) + build.calcsTab.mainOutput[key] = round(build.calcsTab.mainOutput[key], 4) + end + assert.are.equals(build.calcsTab.mainOutput[key], value) + end) + end + end +end) \ No newline at end of file diff --git a/Test/TestBuilds/3.13/OccVortex.lua b/spec/TestBuilds/3.13/OccVortex.lua similarity index 100% rename from Test/TestBuilds/3.13/OccVortex.lua rename to spec/TestBuilds/3.13/OccVortex.lua