FIX: allow query to be explained (#371)

Bug introduced during refactoring in this PR: https://github.com/discourse/discourse-data-explorer/pull/318

Explain parameter must be passed to `ResultFormatConverter`.
This commit is contained in:
Krzysztof Kotlarek 2025-04-23 14:02:20 +08:00 committed by GitHub
parent 08a01b23fe
commit f3ecd52b94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 2 deletions

View File

@ -194,6 +194,7 @@ module ::DiscourseDataExplorer
result,
query_params:,
download: params[:download],
explain: params[:explain] == "true",
)
end
format.csv do

View File

@ -126,9 +126,13 @@ describe DiscourseDataExplorer::QueryController do
end
describe "#run" do
def run_query(id, params = {})
def run_query(id, params = {}, explain = false)
params = Hash[params.map { |a| [a[0], a[1].to_s] }]
post "/admin/plugins/explorer/queries/#{id}/run.json", params: { params: params.to_json }
post "/admin/plugins/explorer/queries/#{id}/run.json",
params: {
params: params.to_json,
explain: explain,
}
end
it "can run queries" do
@ -139,6 +143,18 @@ describe DiscourseDataExplorer::QueryController do
expect(response_json["errors"]).to eq([])
expect(response_json["columns"]).to eq(["my_value"])
expect(response_json["rows"]).to eq([[23]])
expect(response_json["explain"]).to be_nil
end
it "can run and explain queries" do
query = make_query("SELECT 23 as my_value")
run_query query.id, {}, true
expect(response.status).to eq(200)
expect(response_json["success"]).to eq(true)
expect(response_json["errors"]).to eq([])
expect(response_json["columns"]).to eq(["my_value"])
expect(response_json["rows"]).to eq([[23]])
expect(response_json["explain"]).to match("Result ")
end
it "can process parameters" do