update: validator,packages,package (1 files)

This commit is contained in:
Richard Ward
2025-12-30 23:20:00 +00:00
parent af86bc87f5
commit cbc022ddcc

View File

@@ -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)