mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-25 13:06:38 +01:00
Merge pull request #1863 from Leshana/designs-unittest
Add a unit test which verifies research designs' materials lists
This commit is contained in:
@@ -510,7 +510,8 @@ other types of metals and chemistry for reagents).
|
||||
/datum/design/item/weapon/decloner
|
||||
id = "decloner"
|
||||
req_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 7, TECH_BIO = 5, TECH_POWER = 6)
|
||||
materials = list("gold" = 5000,"uranium" = 10000, "mutagen" = 40)
|
||||
materials = list("gold" = 5000,"uranium" = 10000)
|
||||
chemicals = list("mutagen" = 40)
|
||||
build_path = /obj/item/weapon/gun/energy/decloner
|
||||
sort_string = "TAAAE"
|
||||
|
||||
|
||||
@@ -40,3 +40,33 @@
|
||||
issues++
|
||||
|
||||
return issues
|
||||
|
||||
/datum/unit_test/research_designs_have_valid_materials
|
||||
name = "RESEARCH: Designs Shall Have Valid Materials and Chemicals"
|
||||
|
||||
/datum/unit_test/research_designs_have_valid_materials/start_test()
|
||||
var/number_of_issues = 0
|
||||
|
||||
for(var/design_type in typesof(/datum/design) - /datum/design)
|
||||
var/datum/design/design = design_type
|
||||
if(initial(design.id) == "id")
|
||||
continue
|
||||
design = new design_type() // Unfortunately we have to actually instantiate to get a list.
|
||||
|
||||
for(var/material_name in design.materials)
|
||||
var/material/material = get_material_by_name(material_name)
|
||||
if(!material)
|
||||
log_unit_test("The entry [design_type] has invalid material type [material_name]")
|
||||
number_of_issues++
|
||||
|
||||
for(var/reagent_name in design.chemicals)
|
||||
if(!(reagent_name in chemical_reagents_list))
|
||||
log_unit_test("The entry [design_type] has invalid chemical type [reagent_name]")
|
||||
number_of_issues++
|
||||
|
||||
if(number_of_issues)
|
||||
fail("[number_of_issues] issues with research designs found.")
|
||||
else
|
||||
pass("All research designs have valid materials.")
|
||||
|
||||
return 1
|
||||
|
||||
Reference in New Issue
Block a user