discourse/plugins/discourse-data-explorer/spec/system/new_query_spec.rb
Natalie Tay 9b02ce2e30
UI: Allow users to write sql in DE /new page (step 2/n) (#40166)
Add a SQL component on the /new page
2026-05-19 23:09:37 +08:00

48 lines
1.7 KiB
Ruby
Vendored

# frozen_string_literal: true
describe "Data explorer new query" do
fab!(:admin)
let(:query_runner) { PageObjects::Pages::DataExplorerQueryRunner.new }
before do
SiteSetting.data_explorer_enabled = true
sign_in admin
end
it "navigates to the new query page from the index" do
visit("/admin/plugins/discourse-data-explorer/queries")
find(".d-page-subheader .btn-primary").click
expect(page).to have_current_path("/admin/plugins/discourse-data-explorer/queries/new")
end
it "creates a query with name, description, and SQL" do
query_runner.visit_new_query
expect(page).to have_css(".query-new__manual-form .right-panel .schema", text: "topics")
query_runner
.fill_new_query_name("Test Query")
.fill_new_query_description("A test description")
.fill_new_query_sql("SELECT 1")
.submit_new_query
query = DiscourseDataExplorer::Query.last
expect(query.name).to eq("Test Query")
expect(query.description).to eq("A test description")
expect(query.sql).to eq("SELECT 1")
expect(page).to have_current_path("/admin/plugins/discourse-data-explorer/queries/#{query.id}")
expect(query_runner).to have_query_name("Test Query")
expect(query_runner).to have_query_description("A test description")
end
it "creates a query with name only" do
query_runner.visit_new_query.fill_new_query_name("Name Only Query").submit_new_query
query = DiscourseDataExplorer::Query.last
expect(query.name).to eq("Name Only Query")
expect(page).to have_current_path("/admin/plugins/discourse-data-explorer/queries/#{query.id}")
expect(query_runner).to have_query_name("Name Only Query")
end
end