From 04f5e200ad7825a815924e60c3a646ad018ae3cb Mon Sep 17 00:00:00 2001 From: Douglas Lee Date: Thu, 23 Mar 2023 14:11:11 +0800 Subject: [PATCH] test(plugins): add a test case to ensure every bundled plugin have a protocols field --- .../01-db/01-schema/07-plugins_spec.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/spec/01-unit/01-db/01-schema/07-plugins_spec.lua b/spec/01-unit/01-db/01-schema/07-plugins_spec.lua index f19cb2b6688..1dead97596f 100644 --- a/spec/01-unit/01-db/01-schema/07-plugins_spec.lua +++ b/spec/01-unit/01-db/01-schema/07-plugins_spec.lua @@ -8,6 +8,7 @@ local consumers_definition = require "kong.db.schema.entities.consumers" local plugins_definition = require "kong.db.schema.entities.plugins" local dao_plugins = require "kong.db.dao.plugins" local certificates_definition = require "kong.db.schema.entities.certificates" +local constants = require "kong.constants" describe("plugins", function() local Plugins @@ -299,4 +300,21 @@ describe("plugins", function() end) end) + describe("bundled plugins schema validation", function() + it("ensure every bundled plugin schema must have protocols field", function() + for plugin_name, _ in pairs(constants.BUNDLED_PLUGINS) do + local schema = require("kong.plugins." .. plugin_name .. ".schema") + local has_protocols_field + for _, field in ipairs(schema.fields) do + if field.protocols then + has_protocols_field = true + break + end + end + assert.is_true(has_protocols_field, "bundled plugin " .. plugin_name .. " missing required field: protocols") + end + end) + + end) + end)