1-- cluster-labels_test.lua
2-- Runs unit tests against the severity filtering code from cluster-labels.lua
3-- requires 2 arguments
4-- 1. a path to the test library: e.g.: /Users/ur1337/edge-infra/third_party/lua/simple_test/src
5-- 2. a path to the test target dir: e.g.: /Users/ur1337/edge-infra/pkg/edge/logging/fluentbit
6
7local test_library = arg[1] .. "/?.lua"
8local target_dir = arg[2] .. "/?.lua"
9local test_data = arg[2] .. "/testdata"
10
11-- the test library and target directory need to be added to package.path so we can 'require' them
12package.path = package.path .. ";" .. test_library .. ";" .. target_dir .. ";" .. test_data
13
14local test = require("simple_test.init")
15local clusterlabels = require("cluster-labels")
16
17local config_map_test_cases = {
18 {
19 description = "should return table with test-name included",
20 input = test_data .. "/cluster.name",
21 assert_func = function(t,result) t.equal(result, "test-name") end
22 },
23 {
24 description = "configmap doesn't exist, result should be nil",
25 input = test_data .. "/cluster.name-does-not-exist",
26 assert_func = function(t,result) t.equal(result, nil) end
27 },
28 {
29 description = "configmap is empty, result should be nil",
30 input = test_data .. "/cluster.name.empty",
31 assert_func = function(t,result) t.equal(result, nil) end
32 }
33}
34
35local process_name_test_cases = {
36 {
37 description = "process_name test",
38 configfile = test_data .. "/cluster.name",
39 tag = "k8s-container.dummy.tag",
40 timestamp = "2022-03-04T12:34:56.789Z",
41 record = { ncrEdge = {} },
42 assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "test-name") end,
43 },
44 {
45 description = "process_name configmap does not exist",
46 configfile = test_data .. "/cluster.name-does-not-exist",
47 tag = "k8s-container.dummy.tag",
48 timestamp = "2022-03-04T12:34:56.789Z",
49 record = { ncrEdge = {} },
50 assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end,
51 },
52 {
53 description = "process_name empty configmap",
54 configfile = test_data .. "/cluster.name.empty",
55 tag = "k8s-container.dummy.tag",
56 timestamp = "2022-03-04T12:34:56.789Z",
57 record = { ncrEdge = {} },
58 assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end,
59 },
60}
61
62local process_fleet_test_cases = {
63 {
64 description = "process_fleet banner-infra",
65 configfile = test_data .. "/cluster.fleet",
66 tag = "k8s-container.dummy.tag",
67 timestamp = "2022-03-04T12:34:56.789Z",
68 record = { ncrEdge = {} },
69 assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "banner-infra") end,
70 },
71 {
72 description = "process_fleet store",
73 configfile = test_data .. "/cluster.fleet-store",
74 tag = "k8s-container.dummy.tag",
75 timestamp = "2022-03-04T12:34:56.789Z",
76 record = { ncrEdge = {} },
77 assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "store") end,
78 },
79 {
80 description = "process_fleet empty",
81 configfile = test_data .. "/cluster.fleet.empty",
82 tag = "k8s-container.dummy.tag",
83 timestamp = "2022-03-04T12:34:56.789Z",
84 record = { ncrEdge = {} },
85 assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end,
86 },
87 {
88 description = "process_fleet cfg does not exist",
89 configfile = test_data .. "/cluster.fleet-does-not-exist",
90 tag = "k8s-container.dummy.tag",
91 timestamp = "2022-03-04T12:34:56.789Z",
92 record = { ncrEdge = {} },
93 assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end,
94 },
95}
96
97print("-------------------------------------------")
98print("cluster names config_map_test_cases started")
99print("-------------------------------------------")
100for _, case in ipairs(config_map_test_cases) do
101 test(case.description, function(t)
102 local result = clusterlabels.parse_configmap(case.input)
103 case.assert_func(t, result)
104 end)
105end
106
107print("-------------------------------")
108print("process_name_test_cases started")
109print("-------------------------------")
110for _, case in ipairs(process_name_test_cases) do
111 test(case.description, function(t)
112 local result_tag, result_time, result_record = clusterlabels.process_name_main(case.tag, case.timestamp, case.record, case.configfile)
113 case.assert_func(t, result_record)
114 end)
115end
116
117print("-------------------------------")
118print("process_fleet_test_cases started")
119print("-------------------------------")
120for _, case in ipairs(process_fleet_test_cases) do
121 test(case.description, function(t)
122 local result_tag, result_time, result_record = clusterlabels.process_fleet_main(case.tag, case.timestamp, case.record, case.configfile)
123 case.assert_func(t, result_record)
124 end)
125end
View as plain text