From 3c3ba175c5b03705e05072ca1256c902792bfb1f Mon Sep 17 00:00:00 2001 From: Rodrigo Borba Date: Sat, 10 Jan 2026 18:43:48 -0300 Subject: [PATCH] feat: fix custom tool headers auth and add test endpoint --- .../dashboard/api/captain/customTools.js | 6 + .../customTool/CustomToolCard.vue | 6 + .../customTool/ToolTestDialog.vue | 141 ++++++++++++++++++ .../routes/dashboard/captain/tools/Index.vue | 19 ++- config/routes.rb | 4 +- ...0260110193000_fix_status_suites_headers.rb | 56 +++++++ .../captain/custom_tools_controller.rb | 10 +- enterprise/app/models/concerns/toolable.rb | 26 ++-- enterprise/lib/captain/tools/http_tool.rb | 40 +++++ 9 files changed, 296 insertions(+), 12 deletions(-) create mode 100644 app/javascript/dashboard/components-next/captain/pageComponents/customTool/ToolTestDialog.vue create mode 100644 db/migrate/20260110193000_fix_status_suites_headers.rb diff --git a/app/javascript/dashboard/api/captain/customTools.js b/app/javascript/dashboard/api/captain/customTools.js index d0818d9..e8665f5 100755 --- a/app/javascript/dashboard/api/captain/customTools.js +++ b/app/javascript/dashboard/api/captain/customTools.js @@ -31,6 +31,12 @@ class CaptainCustomTools extends ApiClient { delete(id) { return axios.delete(`${this.url}/${id}`); } + + test(id, data = {}) { + return axios.post(`${this.url}/${id}/test`, { + tool_params: data, + }); + } } export default new CaptainCustomTools(); diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolCard.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolCard.vue index d1d1dd0..a4a7f4a 100755 --- a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolCard.vue +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolCard.vue @@ -43,6 +43,12 @@ const { t } = useI18n(); const [showActionsDropdown, toggleDropdown] = useToggle(); const menuItems = computed(() => [ + { + label: t('CAPTAIN.CUSTOM_TOOLS.OPTIONS.TEST_TOOL'), + value: 'test', + action: 'test', + icon: 'i-lucide-play', + }, { label: t('CAPTAIN.CUSTOM_TOOLS.OPTIONS.EDIT_TOOL'), value: 'edit', diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ToolTestDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ToolTestDialog.vue new file mode 100644 index 0000000..6c7a3be --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ToolTestDialog.vue @@ -0,0 +1,141 @@ + + +