new dashboard quality pass (code, tests and UI)
This commit is contained in:
@@ -12,5 +12,11 @@ QUnit.test("Visit dashboard next page", assert => {
|
||||
|
||||
andThen(() => {
|
||||
assert.ok($('.dashboard-next').length, "has dashboard-next class");
|
||||
|
||||
assert.ok($('.dashboard-mini-chart.signups').length, "has a signups chart");
|
||||
assert.ok($('.dashboard-mini-chart.posts').length, "has a posts chart");
|
||||
assert.ok($('.dashboard-mini-chart.dau_by_mau').length, "has a dau_by_mau chart");
|
||||
assert.ok($('.dashboard-mini-chart.daily_engaged_users').length, "has a daily_engaged_users chart");
|
||||
assert.ok($('.dashboard-mini-chart.new_contributors').length, "has a new_contributors chart");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,63 +1,180 @@
|
||||
import Report from 'admin/models/report';
|
||||
import Report from "admin/models/report";
|
||||
|
||||
QUnit.module("Report");
|
||||
|
||||
function reportWithData(data) {
|
||||
return Report.create({
|
||||
type: 'topics',
|
||||
data: _.map(data, function(val, index) {
|
||||
return { x: moment().subtract(index, "days").format('YYYY-MM-DD'), y: val };
|
||||
type: "topics",
|
||||
data: _.map(data, (val, index) => {
|
||||
return { x: moment().subtract(index, "days").format("YYYY-MM-DD"), y: val };
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
QUnit.test("counts", assert => {
|
||||
var report = reportWithData([5, 4, 3, 2, 1, 100, 99, 98, 1000]);
|
||||
const report = reportWithData([5, 4, 3, 2, 1, 100, 99, 98, 1000]);
|
||||
|
||||
assert.equal(report.get('todayCount'), 5);
|
||||
assert.equal(report.get('yesterdayCount'), 4);
|
||||
assert.equal(report.get("todayCount"), 5);
|
||||
assert.equal(report.get("yesterdayCount"), 4);
|
||||
assert.equal(report.valueFor(2, 4), 6, "adds the values for the given range of days, inclusive");
|
||||
assert.equal(report.get('lastSevenDaysCount'), 307, "sums 7 days excluding today");
|
||||
assert.equal(report.get("lastSevenDaysCount"), 307, "sums 7 days excluding today");
|
||||
|
||||
report.set("method", "average");
|
||||
assert.equal(report.valueFor(2, 4), 2, "averages the values for the given range of days");
|
||||
});
|
||||
|
||||
QUnit.test("percentChangeString", assert => {
|
||||
var report = reportWithData([]);
|
||||
const report = reportWithData([]);
|
||||
|
||||
assert.equal(report.percentChangeString(8, 5), "+60%", "value increased");
|
||||
assert.equal(report.percentChangeString(2, 8), "-75%", "value decreased");
|
||||
assert.equal(report.percentChangeString(5, 8), "+60%", "value increased");
|
||||
assert.equal(report.percentChangeString(8, 2), "-75%", "value decreased");
|
||||
assert.equal(report.percentChangeString(8, 8), "0%", "value unchanged");
|
||||
assert.blank(report.percentChangeString(8, 0), "returns blank when previous value was 0");
|
||||
assert.equal(report.percentChangeString(0, 8), "-100%", "yesterday was 0");
|
||||
assert.blank(report.percentChangeString(0, 8), "returns blank when previous value was 0");
|
||||
assert.equal(report.percentChangeString(8, 0), "-100%", "yesterday was 0");
|
||||
assert.blank(report.percentChangeString(0, 0), "returns blank when both were 0");
|
||||
});
|
||||
|
||||
QUnit.test("yesterdayCountTitle with valid values", assert => {
|
||||
var title = reportWithData([6,8,5,2,1]).get('yesterdayCountTitle');
|
||||
assert.ok(title.indexOf('+60%') !== -1);
|
||||
const title = reportWithData([6,8,5,2,1]).get("yesterdayCountTitle");
|
||||
assert.ok(title.indexOf("+60%") !== -1);
|
||||
assert.ok(title.match(/Was 5/));
|
||||
});
|
||||
|
||||
QUnit.test("yesterdayCountTitle when two days ago was 0", assert => {
|
||||
var title = reportWithData([6,8,0,2,1]).get('yesterdayCountTitle');
|
||||
assert.equal(title.indexOf('%'), -1);
|
||||
const title = reportWithData([6,8,0,2,1]).get("yesterdayCountTitle");
|
||||
assert.equal(title.indexOf("%"), -1);
|
||||
assert.ok(title.match(/Was 0/));
|
||||
});
|
||||
|
||||
|
||||
QUnit.test("sevenDayCountTitle", assert => {
|
||||
var title = reportWithData([100,1,1,1,1,1,1,1,2,2,2,2,2,2,2,100,100]).get('sevenDayCountTitle');
|
||||
QUnit.test("sevenDaysCountTitle", assert => {
|
||||
const title = reportWithData([100,1,1,1,1,1,1,1,2,2,2,2,2,2,2,100,100]).get("sevenDaysCountTitle");
|
||||
assert.ok(title.match(/-50%/));
|
||||
assert.ok(title.match(/Was 14/));
|
||||
});
|
||||
|
||||
QUnit.test("thirtyDayCountTitle", assert => {
|
||||
var report = reportWithData([5,5,5,5]);
|
||||
report.set('prev30Days', 10);
|
||||
var title = report.get('thirtyDayCountTitle');
|
||||
QUnit.test("thirtyDaysCountTitle", assert => {
|
||||
const report = reportWithData([5,5,5,5]);
|
||||
report.set("prev30Days", 10);
|
||||
const title = report.get("thirtyDaysCountTitle");
|
||||
|
||||
assert.ok(title.indexOf('+50%') !== -1);
|
||||
assert.ok(title.indexOf("+50%") !== -1);
|
||||
assert.ok(title.match(/Was 10/));
|
||||
});
|
||||
|
||||
QUnit.test("sevenDaysTrend", assert => {
|
||||
let report;
|
||||
let trend;
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1]);
|
||||
trend = report.get("sevenDaysTrend");
|
||||
assert.ok(trend === "no-change");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1, 0,0,0,0,0,0,0]);
|
||||
trend = report.get("sevenDaysTrend");
|
||||
assert.ok(trend === "high-trending-up");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1, 1,1,1,1,1,1,0]);
|
||||
trend = report.get("sevenDaysTrend");
|
||||
assert.ok(trend === "trending-up");
|
||||
|
||||
report = reportWithData([0, 0,0,0,0,0,0,0, 1,1,1,1,1,1,1]);
|
||||
trend = report.get("sevenDaysTrend");
|
||||
assert.ok(trend === "high-trending-down");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,0, 1,1,1,1,1,1,1]);
|
||||
trend = report.get("sevenDaysTrend");
|
||||
assert.ok(trend === "trending-down");;
|
||||
});
|
||||
|
||||
QUnit.test("yesterdayTrend", assert => {
|
||||
let report;
|
||||
let trend;
|
||||
|
||||
report = reportWithData([0, 1, 1]);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "no-change");
|
||||
|
||||
report = reportWithData([0, 1, 0]);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "high-trending-up");
|
||||
|
||||
report = reportWithData([0, 1.1, 1]);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "trending-up");
|
||||
|
||||
report = reportWithData([0, 0, 1]);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "high-trending-down");
|
||||
|
||||
report = reportWithData([0, 1, 1.1]);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "trending-down");;
|
||||
});
|
||||
|
||||
QUnit.test("thirtyDaysTrend", assert => {
|
||||
let report;
|
||||
let trend;
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
|
||||
report.set("prev30Days", 30);
|
||||
trend = report.get("thirtyDaysTrend");
|
||||
assert.ok(trend === "no-change");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
|
||||
report.set("prev30Days", 0);
|
||||
trend = report.get("thirtyDaysTrend");
|
||||
assert.ok(trend === "high-trending-up");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
|
||||
report.set("prev30Days", 25);
|
||||
trend = report.get("thirtyDaysTrend");
|
||||
assert.ok(trend === "trending-up");
|
||||
|
||||
report = reportWithData([0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);
|
||||
report.set("prev30Days", 60);
|
||||
trend = report.get("thirtyDaysTrend");
|
||||
assert.ok(trend === "high-trending-down");
|
||||
|
||||
report = reportWithData([0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0]);
|
||||
report.set("prev30Days", 35);
|
||||
trend = report.get("thirtyDaysTrend");
|
||||
assert.ok(trend === "trending-down");;
|
||||
});
|
||||
|
||||
QUnit.test("higher is better false", assert => {
|
||||
let report;
|
||||
let trend;
|
||||
|
||||
report = reportWithData([0, 1, 0]);
|
||||
report.set("higher_is_better", false);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "high-trending-down");
|
||||
|
||||
report = reportWithData([0, 1.1, 1]);
|
||||
report.set("higher_is_better", false);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "trending-down");
|
||||
|
||||
report = reportWithData([0, 0, 1]);
|
||||
report.set("higher_is_better", false);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "high-trending-up");
|
||||
|
||||
report = reportWithData([0, 1, 1.1]);
|
||||
report.set("higher_is_better", false);
|
||||
trend = report.get("yesterdayTrend");
|
||||
assert.ok(trend === "trending-up");;
|
||||
});
|
||||
|
||||
QUnit.test("average", assert => {
|
||||
let report;
|
||||
|
||||
report = reportWithData([5, 5, 5, 5, 5, 5, 5, 5]);
|
||||
|
||||
report.set("average", true);
|
||||
assert.ok(report.get("lastSevenDaysCount") === 5);
|
||||
|
||||
report.set("average", false);
|
||||
assert.ok(report.get("lastSevenDaysCount") === 35);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user