-- cluster-labels_test.lua -- Runs unit tests against the severity filtering code from cluster-labels.lua -- requires 2 arguments -- 1. a path to the test library: e.g.: /Users/ur1337/edge-infra/third_party/lua/simple_test/src -- 2. a path to the test target dir: e.g.: /Users/ur1337/edge-infra/pkg/edge/logging/fluentbit local test_library = arg[1] .. "/?.lua" local target_dir = arg[2] .. "/?.lua" local test_data = arg[2] .. "/testdata" -- the test library and target directory need to be added to package.path so we can 'require' them package.path = package.path .. ";" .. test_library .. ";" .. target_dir .. ";" .. test_data local test = require("simple_test.init") local clusterlabels = require("cluster-labels") local config_map_test_cases = { { description = "should return table with test-name included", input = test_data .. "/cluster.name", assert_func = function(t,result) t.equal(result, "test-name") end }, { description = "configmap doesn't exist, result should be nil", input = test_data .. "/cluster.name-does-not-exist", assert_func = function(t,result) t.equal(result, nil) end }, { description = "configmap is empty, result should be nil", input = test_data .. "/cluster.name.empty", assert_func = function(t,result) t.equal(result, nil) end } } local process_name_test_cases = { { description = "process_name test", configfile = test_data .. "/cluster.name", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "test-name") end, }, { description = "process_name configmap does not exist", configfile = test_data .. "/cluster.name-does-not-exist", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end, }, { description = "process_name empty configmap", configfile = test_data .. "/cluster.name.empty", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end, }, } local process_fleet_test_cases = { { description = "process_fleet banner-infra", configfile = test_data .. "/cluster.fleet", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "banner-infra") end, }, { description = "process_fleet store", configfile = test_data .. "/cluster.fleet-store", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "store") end, }, { description = "process_fleet empty", configfile = test_data .. "/cluster.fleet.empty", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end, }, { description = "process_fleet cfg does not exist", configfile = test_data .. "/cluster.fleet-does-not-exist", tag = "k8s-container.dummy.tag", timestamp = "2022-03-04T12:34:56.789Z", record = { ncrEdge = {} }, assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end, }, } print("-------------------------------------------") print("cluster names config_map_test_cases started") print("-------------------------------------------") for _, case in ipairs(config_map_test_cases) do test(case.description, function(t) local result = clusterlabels.parse_configmap(case.input) case.assert_func(t, result) end) end print("-------------------------------") print("process_name_test_cases started") print("-------------------------------") for _, case in ipairs(process_name_test_cases) do test(case.description, function(t) local result_tag, result_time, result_record = clusterlabels.process_name_main(case.tag, case.timestamp, case.record, case.configfile) case.assert_func(t, result_record) end) end print("-------------------------------") print("process_fleet_test_cases started") print("-------------------------------") for _, case in ipairs(process_fleet_test_cases) do test(case.description, function(t) local result_tag, result_time, result_record = clusterlabels.process_fleet_main(case.tag, case.timestamp, case.record, case.configfile) case.assert_func(t, result_record) end) end