Files
Bubberstation/code/modules/unit_tests/~skyrat/opposing_force.dm
SkyratBot aa8d114bff [MIRROR] Wraps all instances of invoking Fail() into the TEST_FAIL Macro [MDB IGNORE] (#19384)
* Wraps all instances of invoking Fail() into the TEST_FAIL Macro (#73407)

We shouldn't really be invoking the proc itself because then we don't
pass along the failing line/file to our consumers, let's use the macro
in all instances that really need it.

I noticed people were invoking the `Fail()` proc directly rather than
using `TEST_FAIL` instead, so they weren't getting those neat
annotations on their failing code because we never passed along the
failing line/file to actually apply those annotations. That's silly. We
don't even return on `TEST_FAIL` either, so there's no reason to not do
this (only upsides wahoo).

* Wraps all instances of invoking Fail() into the TEST_FAIL Macro

* Correct macro in opfor unit test

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-02-16 19:41:29 -05:00

22 lines
906 B
Plaintext

#define DATUM_PATH_LEN 33
///Checks that all OPFOR items have an `item_type` associated with them
/datum/unit_test/opfor_items
/datum/unit_test/opfor_items/Run()
var/list/subtype_pre = subtypesof(/datum/opposing_force_equipment)
var/list/compiled_subtypes = list()
for(var/datum/opposing_force_equipment/opfor as anything in subtype_pre)
var/path_string = "[opfor]"
var/partially_cut = splicetext(path_string, 1, DATUM_PATH_LEN, "") // now looks like `parent` or `parent/opforitem`
var/result_cut = splicetext(partially_cut, 1, findtext(partially_cut, "/"), "") // now will just be /opforitem
if(!findtext(result_cut, "/"))
continue
compiled_subtypes += opfor
for(var/datum/opposing_force_equipment/opfor_item as anything in compiled_subtypes)
if(!initial(opfor_item.item_type))
TEST_FAIL("Opposing Force equipment datum [opfor_item] lacks an `item_type`.")
#undef DATUM_PATH_LEN