mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
update: validator,packages,package (1 files)
This commit is contained in:
@@ -114,4 +114,180 @@ describe("Metadata Schema Validation", function()
|
||||
local valid, errors = metadata_schema.validate_metadata(invalid_metadata)
|
||||
expect(valid).toBe(false)
|
||||
end)
|
||||
|
||||
-- Tests for primary flag
|
||||
it("should validate primary: true", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
primary = true
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
|
||||
it("should validate primary: false", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
primary = false
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
|
||||
it("should fail when primary is not boolean", function()
|
||||
local invalid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
primary = "yes"
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(invalid_metadata)
|
||||
expect(valid).toBe(false)
|
||||
end)
|
||||
|
||||
-- Tests for permissions
|
||||
it("should validate valid permissions", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["test.read"] = { minLevel = 1, description = "Read test data" },
|
||||
["test.write"] = { minLevel = 2, description = "Write test data" }
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
|
||||
it("should fail when permission key is invalid", function()
|
||||
local invalid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["Test.Read"] = { minLevel = 1, description = "Read test data" }
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(invalid_metadata)
|
||||
expect(valid).toBe(false)
|
||||
end)
|
||||
|
||||
it("should fail when permission minLevel is missing", function()
|
||||
local invalid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["test.read"] = { description = "Read test data" }
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(invalid_metadata)
|
||||
expect(valid).toBe(false)
|
||||
end)
|
||||
|
||||
it("should fail when permission description is missing", function()
|
||||
local invalid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["test.read"] = { minLevel = 1 }
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(invalid_metadata)
|
||||
expect(valid).toBe(false)
|
||||
end)
|
||||
|
||||
it("should validate permissions with featureFlags", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["test.advanced"] = {
|
||||
minLevel = 3,
|
||||
description = "Advanced features",
|
||||
featureFlags = { "beta_features", "advanced_mode" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
|
||||
it("should validate permissions with requireDatabase", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
permissions = {
|
||||
["test.db_action"] = {
|
||||
minLevel = 2,
|
||||
description = "Database action",
|
||||
requireDatabase = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
|
||||
it("should allow minLevel 0 for public permissions", function()
|
||||
local valid_metadata = {
|
||||
packageId = "test_package",
|
||||
name = "Test Package",
|
||||
version = "1.0.0",
|
||||
description = "A test package",
|
||||
author = "MetaBuilder",
|
||||
category = "test",
|
||||
minLevel = 0,
|
||||
permissions = {
|
||||
["test.public"] = { minLevel = 0, description = "Public action" }
|
||||
}
|
||||
}
|
||||
|
||||
local valid, errors = metadata_schema.validate_metadata(valid_metadata)
|
||||
expect(valid).toBe(true)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user