Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
34 lines
1.5 KiB
Plaintext
34 lines
1.5 KiB
Plaintext
@tool
|
|
extends EditorContextMenuPlugin
|
|
|
|
var _context_menus := Dictionary()
|
|
var _editor: ScriptEditor
|
|
var _command_handler := GdUnitCommandHandler.instance()
|
|
|
|
|
|
func _init() -> void:
|
|
var is_test_suite := func is_visible(script: Script, is_ts: bool) -> bool:
|
|
return GdUnitTestSuiteScanner.is_test_suite(script) == is_ts
|
|
var context_menus :Array[GdUnitContextMenuItem] = [
|
|
GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_RUN, "Run Tests", "Play", is_test_suite.bind(true), _command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTCASE)),
|
|
GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.TEST_DEBUG, "Debug Tests", "PlayStart", is_test_suite.bind(true), _command_handler.command(GdUnitCommandHandler.CMD_RUN_TESTCASE_DEBUG)),
|
|
GdUnitContextMenuItem.new(GdUnitContextMenuItem.MENU_ID.CREATE_TEST, "Create Test", "New", is_test_suite.bind(false), _command_handler.command(GdUnitCommandHandler.CMD_CREATE_TESTCASE))
|
|
]
|
|
for menu in context_menus:
|
|
_context_menus[menu.id] = menu
|
|
_editor = EditorInterface.get_script_editor()
|
|
@warning_ignore("return_value_discarded")
|
|
|
|
|
|
func _popup_menu(paths: PackedStringArray) -> void:
|
|
var script_path := paths[0]
|
|
var script: Script = ResourceLoader.load(script_path, "Script", ResourceLoader.CACHE_MODE_REUSE)
|
|
|
|
for menu_id: int in _context_menus.keys():
|
|
var menu_item: GdUnitContextMenuItem = _context_menus[menu_id]
|
|
if menu_item.is_visible(script):
|
|
add_context_menu_item(menu_item.name,
|
|
func call(files: Array) -> void:
|
|
menu_item.execute([script_path]),
|
|
GdUnitUiTools.get_icon(menu_item.icon))
|