@@ -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...",
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user