4a9610f382
* WIP/initial routing-ish * refactor date dropdown to reuse in modal and allowe current month selection * swap linter disable line * refactor date-dropdown to return object * refactor calendar widget, add tests * change calendar start and end args to getters * refactor dashboard to use date objects instead of array of year, month * remove dashboard files for easier to follow git diff * comment out dashboard tab until route name updated * delete current tab and route * fix undefined banner time * cleanup version history serializer and upgrade data * first pass of updating tests * add changelog * update client count util test * validate end time is after start time * update comment * add current month to calendar widget * add comments for code changes to make following API update * Removed a modified file from pull request * address comments/cleanup * update variables to const * update test const * rename history -> dashboard, fix tests * fix timestamps for attribution chart * update release note * refactor using backend start and end time params * add test for adapter formatting time params * fix tests * cleanup adapter comment and query params * change back history file name for diff * rename file using cli * revert filenames * rename files via git cli * revert route file name * last cli rename * refactor mirage * hold off on running total changes * update params in test * refactor to remove conditional assertions * finish tests * fix firefox tooltip * remove current-when * refactor version history * add timezone/UTC note * final cleanup!!!! * fix test * fix client count date tests * fix date-dropdown test * clear datedropdown completely * update date selectors to accommodate new year (#18586) * Revert "hold off on running total changes" This reverts commit 8dc79a626d549df83bc47e290392a556c670f98f. * remove assumed 0 values * update average helper to only calculate for array of objects * remove passing in bar chart data, map in running totals component instead * cleanup usage stat component * clear ss filters for new queries * update csv export, add explanation to modal * update test copy * consistently return null if no upgrade during activity (instead of empty array) * update description, add clarifying comments * update tes * add more clarifying comments * fix historic single month chart * remove old test tag * Update ui/app/components/clients/dashboard.js
60 lines
2.3 KiB
JavaScript
60 lines
2.3 KiB
JavaScript
import { module, test } from 'qunit';
|
|
import { setupRenderingTest } from 'ember-qunit';
|
|
import { render } from '@ember/test-helpers';
|
|
import { format } from 'date-fns';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
|
|
module('Integration | Helper | date-format', function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
test('it is able to format a date object', async function (assert) {
|
|
const today = new Date();
|
|
this.set('today', today);
|
|
|
|
await render(hbs`{{date-format this.today "yyyy"}}`);
|
|
assert.dom(this.element).includesText(today.getFullYear(), 'it renders the date in the year format');
|
|
});
|
|
|
|
test('it supports date timestamps', async function (assert) {
|
|
const today = new Date().getTime();
|
|
this.set('today', today);
|
|
|
|
await render(hbs`{{date-format this.today 'hh:mm:ss'}}`);
|
|
const formattedDate = this.element.innerText;
|
|
assert.ok(formattedDate.match(/^\d{2}:\d{2}:\d{2}$/));
|
|
});
|
|
|
|
test('it supports date strings', async function (assert) {
|
|
const todayString = new Date().getFullYear().toString();
|
|
this.set('todayString', todayString);
|
|
|
|
await render(hbs`{{date-format this.todayString "yyyy"}}`);
|
|
assert.dom(this.element).includesText(todayString, 'it renders the a date if passed in as a string');
|
|
});
|
|
|
|
test('it supports ten digit dates', async function (assert) {
|
|
const tenDigitDate = 1621785298;
|
|
this.set('tenDigitDate', tenDigitDate);
|
|
|
|
await render(hbs`{{date-format this.tenDigitDate "MM/dd/yyyy"}}`);
|
|
assert.dom(this.element).includesText('05/23/2021');
|
|
});
|
|
|
|
test('it supports already formatted dates', async function (assert) {
|
|
const formattedDate = new Date();
|
|
this.set('formattedDate', formattedDate);
|
|
|
|
await render(hbs`{{date-format this.formattedDate 'MMMM dd, yyyy hh:mm:ss a' isFormatted=true}}`);
|
|
assert.dom(this.element).includesText(format(formattedDate, 'MMMM dd, yyyy hh:mm:ss a'));
|
|
});
|
|
|
|
test('displays time zone if withTimeZone=true', async function (assert) {
|
|
const timestampDate = '2022-12-06T11:29:15-08:00';
|
|
const zone = new Date().toLocaleTimeString(undefined, { timeZoneName: 'short' }).split(' ')[2];
|
|
this.set('timestampDate', timestampDate);
|
|
|
|
await render(hbs`{{date-format this.timestampDate 'MMM d yyyy, h:mm:ss aaa' withTimeZone=true}}`);
|
|
assert.dom(this.element).hasTextContaining(`${zone}`);
|
|
});
|
|
});
|