1
0
mirror of synced 2026-09-13 05:45:01 +00:00

Upgrade query-result to Octane (#204)

* Upgrade query-result to Octane
This commit is contained in:
Isaac Janzen
2022-12-20 12:09:37 -06:00
committed by GitHub
parent cf365f7df2
commit 4c70cfa100
8 changed files with 334 additions and 431 deletions
@@ -199,6 +199,7 @@ acceptance("Data Explorer Plugin | Run Query", function (needs) {
queryAll("div.query-results table tbody tr").length === 2,
"the table with query results was rendered"
);
assert.ok(
query("div.result-info button:nth-child(3) span").innerText.trim() ===
I18n.t("explorer.show_graph"),
@@ -16,7 +16,7 @@ discourseModule(
setupRenderingTest(hooks);
componentTest("it renders query results", {
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -70,7 +70,7 @@ discourseModule(
});
componentTest("it renders badge names in query results", {
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -102,7 +102,7 @@ discourseModule(
});
componentTest("it renders a post in query results", {
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -141,7 +141,7 @@ discourseModule(
});
componentTest("it renders a category_id in query results", {
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -183,7 +183,7 @@ discourseModule(
setupRenderingTest(hooks);
componentTest("navigation between a table and a chart works", {
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -228,7 +228,7 @@ discourseModule(
componentTest(
"it renders a chart button when data has two columns and numbers in the second column",
{
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -255,7 +255,7 @@ discourseModule(
componentTest(
"it doesn't render a chart button when data contains identifiers in the second column",
{
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -285,7 +285,7 @@ discourseModule(
componentTest(
"it doesn't render a chart button when data contains one column",
{
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -306,7 +306,7 @@ discourseModule(
componentTest(
"it doesn't render a chart button when data contains more than two columns",
{
template: hbs`{{query-result content=content}}`,
template: hbs`<QueryResult @content={{content}} />`,
beforeEach() {
const results = {
@@ -1,111 +0,0 @@
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
discourseModule("Unit | Component | query-result", function () {
test("it transforms data for a chart", function (assert) {
const component = this.container
.factoryFor("component:query-result")
.create({ renderer: {} });
component.setProperties({
content: {
colrender: [],
result_count: 2,
columns: ["user", "like_count"],
rows: [
["user1", 10],
["user2", 20],
],
},
});
assert.deepEqual(
component.chartLabels,
["user1", "user2"],
"labels are correct"
);
assert.deepEqual(component.chartValues, [10, 20], "values are correct");
assert.deepEqual(
component.chartDatasetName,
"like_count",
"the dataset name is correct"
);
});
test("it uses descriptive chart labels instead of identifiers", function (assert) {
const component = this.container
.factoryFor("component:query-result")
.create({ renderer: {} });
component.setProperties({
content: {
colrender: { 0: "user" },
relations: {
user: [
{ id: 1, username: "user1" },
{ id: 2, username: "user2" },
],
},
result_count: 2,
columns: ["user", "like_count"],
rows: [
[1, 10],
[2, 20],
],
},
});
assert.deepEqual(component.chartLabels, ["user1", "user2"]);
});
test("it uses an identifier as a chart label if labelSelector doesn't exist", function (assert) {
const component = this.container
.factoryFor("component:query-result")
.create({ renderer: {} });
component.setProperties({
content: {
colrender: { 0: "unknown_entity" },
relations: {
unknown_entity: [
{ id: 1, username: "user1" },
{ id: 2, username: "user2" },
],
},
result_count: 2,
columns: ["user", "like_count"],
rows: [
[1, 10],
[2, 20],
],
},
});
assert.deepEqual(component.chartLabels, ["1", "2"]);
});
test("it cuts too long chart labels", function (assert) {
const component = this.container
.factoryFor("component:query-result")
.create({ renderer: {} });
component.setProperties({
content: {
colrender: [],
result_count: 2,
columns: ["user", "like_count"],
rows: [
["This string is too long to be used as a label on a chart", 10],
["This string is too long to be used as a label on a chart", 20],
],
},
});
assert.deepEqual(component.chartLabels, [
"This string is too long t...",
"This string is too long t...",
]);
});
});