From f13665269dfb8790639ab8c917a5d777f4147a0a Mon Sep 17 00:00:00 2001 From: MarinaGryphon Date: Sun, 6 Jun 2021 04:36:52 -0500 Subject: [PATCH 1/2] Adds unit test for invalid recipes (#8119) * Adds invalid recipe unit test Checks for: - Missing result type - Result type is not /atom/movable (mob or obj) - Result quantity unset - Quantity less than or equal to zero - Quantity is not an integer * Update recipe_tests.dm * adds tests to dme * dont code at night (remix) * Update recipe_tests.dm --- code/unit_tests/recipe_tests.dm | 29 +++++++++++++++++++++++++++++ vorestation.dme | 1 + 2 files changed, 30 insertions(+) create mode 100644 code/unit_tests/recipe_tests.dm diff --git a/code/unit_tests/recipe_tests.dm b/code/unit_tests/recipe_tests.dm new file mode 100644 index 00000000000..a2d7594d0da --- /dev/null +++ b/code/unit_tests/recipe_tests.dm @@ -0,0 +1,29 @@ +/datum/unit_test/recipe_test_shall_have_valid_result_and_quantity + name = "RECIPES: Recipes shall have valid result and result_quantity definitions" + +/datum/unit_test/recipe_test_shall_have_valid_result_and_quantity/start_test() + var/failed = FALSE + for(var/datum/recipe/R in subtypesof(/datum/recipe)) + var/our_result = initial(R.result) + var/our_amount = initial(R.result_quantity) + if(!our_result) + log_unit_test("[R]: Recipes - Missing result.") + failed = TRUE + else if(!ispath(our_result, /atom/movable)) + log_unit_test("[R]: Recipes - Improper result; [our_result] is not an obj or mob.") + failed = TRUE + if(isnull(our_amount)) + log_unit_test("[R]: Recipes - result_quantity must be set.") + failed = TRUE + if(our_amount <= 0) + log_unit_test("[R]: Recipes - result_quantity must be greater than zero.") + failed = TRUE + else if(!ISINTEGER(our_amount)) + log_unit_test("[R]: Recipes - result_quantity must be an integer.") + failed = TRUE + + if(failed) + fail("One or more /datum/recipe subtypes had invalid results or result_quantity definitions.") + else + pass("All /datum/recipe subtypes had correct settings.") + return TRUE diff --git a/vorestation.dme b/vorestation.dme index 3b344e34912..d49d8a19491 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3972,6 +3972,7 @@ #include "code\unit_tests\loadout_tests.dm" #include "code\unit_tests\map_tests.dm" #include "code\unit_tests\mob_tests.dm" +#include "code\unit_tests\recipe_tests.dm" #include "code\unit_tests\research_tests.dm" #include "code\unit_tests\sqlite_tests.dm" #include "code\unit_tests\subsystem_tests.dm"