summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/control_panel/time_range_menu_tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/tests/control_panel/time_range_menu_tests.js')
-rw-r--r--addons/web/static/tests/control_panel/time_range_menu_tests.js333
1 files changed, 0 insertions, 333 deletions
diff --git a/addons/web/static/tests/control_panel/time_range_menu_tests.js b/addons/web/static/tests/control_panel/time_range_menu_tests.js
deleted file mode 100644
index 17b6936c9ca..00000000000
--- a/addons/web/static/tests/control_panel/time_range_menu_tests.js
+++ /dev/null
@@ -1,333 +0,0 @@
-odoo.define('web.time_range_menu_tests', function (require) {
- "use strict";
-
- const testUtils = require('web.test_utils');
- const { TIME_RANGE_OPTIONS, COMPARISON_TIME_RANGE_OPTIONS } = require('web.searchUtils');
-
- const { controlPanel: cpHelpers, createControlPanel, mock } = testUtils;
- const { patchDate } = mock;
-
- const searchMenuTypes = ['timeRange'];
-
- QUnit.module('Components', {
- beforeEach: function () {
- this.fields = {
- birthday: { string: "Birthday", type: "date", store: true, sortable: true },
- date_field: { string: "Date", type: "date", store: true, sortable: true },
- float_field: { string: "Float", type: "float", group_operator: 'sum' },
- foo: { string: "Foo", type: "char", store: true, sortable: true },
- };
- },
- }, function () {
-
- QUnit.module('TimeRangeMenu');
-
- QUnit.test('simple rendering', async function (assert) {
- assert.expect(12);
-
- const params = {
- cpStoreConfig: { viewInfo: { fields: this.fields }, searchMenuTypes },
- cpProps: { fields: this.fields, searchMenuTypes },
- };
- const controlPanel = await createControlPanel(params);
-
- assert.containsOnce(controlPanel, 'div.o_time_range_menu > button i.fa.fa-calendar');
- assert.strictEqual(controlPanel.el.querySelector('div.o_time_range_menu > button span').innerText.trim(), 'Time Ranges');
-
- await cpHelpers.toggleTimeRangeMenu(controlPanel);
-
- assert.containsN(controlPanel, 'div.o_time_range_section', 3);
-
- let selectEls = [...controlPanel.el.querySelectorAll('div.o_time_range_section select')];
- assert.strictEqual(selectEls.length, 2);
- assert.deepEqual(selectEls.map(e => e.value), ['birthday', 'this_month']);
- assert.containsN(controlPanel, 'div.o_time_range_section label', 3);
-
- const labelEls = [...controlPanel.el.querySelectorAll('div.o_time_range_section label')];
- assert.deepEqual(labelEls.map(e => e.innerText.trim()), ['Based On', 'Range', 'Compare To']);
- assert.containsOnce(controlPanel, 'div.o_time_range_section input[type="checkbox"]');
-
- assert.containsOnce(controlPanel, 'div.o_time_range_menu ul button');
- assert.strictEqual(
- // text is upper cased in enterprise
- controlPanel.el.querySelector('div.o_time_range_menu ul button').innerText.trim().toUpperCase(),
- 'APPLY'
- );
-
- await cpHelpers.toggleTimeRangeMenuBox(controlPanel);
-
- selectEls = controlPanel.el.querySelectorAll('div.o_time_range_section select');
- assert.strictEqual(selectEls.length, 3);
- assert.strictEqual(selectEls[2].value, 'previous_period');
-
- controlPanel.destroy();
- });
-
- QUnit.test('initialization with default time range without comparisonRange', async function (assert) {
- assert.expect(5);
-
- const unpatchDate = patchDate(2020, 0, 29, 15, 0, 0);
-
- const params = {
- cpStoreConfig: {
- viewInfo: { fields: this.fields },
- searchMenuTypes,
- actionContext: {
- time_ranges: { field: 'date_field', range: 'this_week' }
- }
- },
- cpProps: { fields: this.fields, searchMenuTypes },
- };
- const controlPanel = await createControlPanel(params);
-
- const { timeRanges } = controlPanel.getQuery();
- assert.deepEqual(timeRanges, {
- fieldDescription: "Date",
- fieldName: "date_field",
- range: [
- "&",
- ["date_field", ">=", "2020-01-27"],
- ["date_field", "<", "2020-02-03"]
- ],
- rangeDescription: "This Week",
- rangeId: "this_week"
- });
-
- await cpHelpers.toggleTimeRangeMenu(controlPanel);
-
- const selectEls = controlPanel.el.querySelectorAll('div.o_time_range_section select');
- assert.strictEqual(selectEls.length, 2);
- assert.deepEqual(
- [...selectEls].map(e => e.value),
- ['date_field', 'this_week']
- );
-
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), ['Date: This Week']);
- assert.containsOnce(controlPanel.el.querySelector('.o_searchview .o_searchview_facet'),
- 'span.fa.fa-calendar.o_searchview_facet_label');
-
- controlPanel.destroy();
- unpatchDate();
- });
-
- QUnit.test('initialization with default time range with comparisonRange', async function (assert) {
- assert.expect(4);
-
- const unpatchDate = patchDate(2020, 0, 29, 15, 0, 0);
-
- const params = {
- cpStoreConfig: {
- viewInfo: { fields: this.fields },
- searchMenuTypes,
- actionContext: {
- time_ranges: { field: 'date_field', range: 'today', comparisonRange: 'previous_year' }
- }
- },
- cpProps: { fields: this.fields, searchMenuTypes },
- };
- const controlPanel = await createControlPanel(params);
-
- const { timeRanges } = controlPanel.getQuery();
- assert.deepEqual(timeRanges, {
- comparisonRange: [
- "&",
- ["date_field", ">=", "2019-01-29"],
- ["date_field", "<", "2019-01-30"]
- ],
- comparisonRangeDescription: "Previous Year",
- comparisonRangeId: "previous_year",
- fieldDescription: "Date",
- fieldName: "date_field",
- range: [
- "&",
- ["date_field", ">=", "2020-01-29"],
- ["date_field", "<", "2020-01-30"]
- ],
- rangeDescription: "Today",
- rangeId: "today"
- });
-
- await cpHelpers.toggleTimeRangeMenu(controlPanel);
-
- const selectEls = controlPanel.el.querySelectorAll('div.o_time_range_section select');
- assert.strictEqual(selectEls.length, 3);
- assert.deepEqual(
- [...selectEls].map(e => e.value),
- ['date_field', 'today', 'previous_year']
- );
-
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), ['Date: Today / Previous Year']);
-
- controlPanel.destroy();
- unpatchDate();
- });
-
- QUnit.test('activate a time range works', async function (assert) {
- assert.expect(3);
-
- const unpatchDate = patchDate(2020, 0, 29, 1, 0, 0);
-
- const params = {
- cpStoreConfig: {
- viewInfo: { fields: this.fields },
- searchMenuTypes,
- },
- cpProps: { fields: this.fields, searchMenuTypes },
- search: function (searchQuery) {
- const { timeRanges } = searchQuery;
- assert.deepEqual(timeRanges, {
- comparisonRange: [
- "&",
- ["birthday", ">=", "2019-01-29"],
- ["birthday", "<", "2019-01-30"]
- ],
- comparisonRangeDescription: "Previous Year",
- comparisonRangeId: "previous_year",
- fieldDescription: "Birthday",
- fieldName: "birthday",
- range: [
- "&",
- ["birthday", ">=", "2020-01-29"],
- ["birthday", "<", "2020-01-30"]
- ],
- rangeDescription: "Today",
- rangeId: "today"
- });
- }
- };
- const controlPanel = await createControlPanel(params);
-
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), []);
-
- await cpHelpers.toggleTimeRangeMenu(controlPanel);
- await cpHelpers.toggleTimeRangeMenuBox(controlPanel);
-
- await cpHelpers.selectField(controlPanel, 'birthday');
- await cpHelpers.selectRange(controlPanel, 'today');
- await cpHelpers.selectComparisonRange(controlPanel, 'previous_year');
-
- await cpHelpers.applyTimeRange(controlPanel);
-
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), ['Birthday: Today / Previous Year']);
-
- controlPanel.destroy();
- unpatchDate();
- });
-
- QUnit.test('no timeRanges key in search query if "timeRange" not in searchMenuTypes', async function (assert) {
- assert.expect(1);
-
- const params = {
- cpStoreConfig: {
- viewInfo: { fields: this.fields },
- actionContext: {
- time_ranges: { field: 'date_field', range: 'this_week' }
- }
- },
- cpProps: { fields: this.fields },
- };
- const controlPanel = await createControlPanel(params);
-
- const { timeRanges } = controlPanel.getQuery();
- assert.strictEqual(timeRanges, undefined);
-
- controlPanel.destroy();
- });
-
- QUnit.test('time ranges generated are correct', async function (assert) {
- assert.expect(85);
-
- const unpatchDate = patchDate(2017, 2, 22, 1, 0, 0);
-
- const ranges = {
- last_7_days: ['&', ["birthday", ">=", "2017-03-15"], ["birthday", "<", "2017-03-22"]],
- last_30_days: ['&', ["birthday", ">=", "2017-02-20"], ["birthday", "<", "2017-03-22"]],
- last_365_days: ['&', ["birthday", ">=", "2016-03-22"], ["birthday", "<", "2017-03-22"]],
- last_5_years: ['&', ["birthday", ">=", "2012-03-22"], ["birthday", "<", "2017-03-22"]],
- today: ['&', ["birthday", ">=", "2017-03-22"], ["birthday", "<", "2017-03-23"]],
- this_week: ['&', ["birthday", ">=", "2017-03-20"], ["birthday", "<", "2017-03-27"]],
- this_month: ['&', ["birthday", ">=", "2017-03-01"], ["birthday", "<", "2017-04-01"]],
- this_quarter: ['&', ["birthday", ">=", "2017-01-01"], ["birthday", "<", "2017-04-01"]],
- this_year: ['&', ["birthday", ">=", "2017-01-01"], ["birthday", "<", "2018-01-01"]],
- yesterday: ['&', ["birthday", ">=", "2017-03-21"], ["birthday", "<", "2017-03-22"]],
- last_week: ['&', ["birthday", ">=", "2017-03-13"], ["birthday", "<", "2017-03-20"]],
- last_month: ['&', ["birthday", ">=", "2017-02-01"], ["birthday", "<", "2017-03-01"]],
- last_quarter: ['&', ["birthday", ">=", "2016-10-01"], ["birthday", "<", "2017-01-01"]],
- last_year: ['&', ["birthday", ">=", "2016-01-01"], ["birthday", "<", "2017-01-01"]],
- };
- const comparisonRanges = {
- previous_period: {
- last_7_days: ['&', ["birthday", ">=", "2017-03-08"], ["birthday", "<", "2017-03-15"]],
- last_30_days: ['&', ["birthday", ">=", "2017-01-21"], ["birthday", "<", "2017-02-20"]],
- last_365_days: ['&', ["birthday", ">=", "2015-03-23"], ["birthday", "<", "2016-03-22"]],
- last_5_years: ['&', ["birthday", ">=", "2007-03-22"], ["birthday", "<", "2012-03-22"]],
- today: ['&', ["birthday", ">=", "2017-03-21"], ["birthday", "<", "2017-03-22"]],
- this_week: ['&', ["birthday", ">=", "2017-03-13"], ["birthday", "<", "2017-03-20"]],
- this_month: ['&', ["birthday", ">=", "2017-02-01"], ["birthday", "<", "2017-03-01"]],
- this_quarter: ['&', ["birthday", ">=", "2016-10-01"], ["birthday", "<", "2017-01-01"]],
- this_year: ['&', ["birthday", ">=", "2016-01-01"], ["birthday", "<", "2017-01-01"]],
- yesterday: ['&', ["birthday", ">=", "2017-03-20"], ["birthday", "<", "2017-03-21"]],
- last_week: ['&', ["birthday", ">=", "2017-03-06"], ["birthday", "<", "2017-03-13"]],
- last_month: ['&', ["birthday", ">=", "2017-01-01"], ["birthday", "<", "2017-02-01"]],
- last_quarter: ['&', ["birthday", ">=", "2016-07-01"], ["birthday", "<", "2016-10-01"]],
- last_year: ['&', ["birthday", ">=", "2015-01-01"], ["birthday", "<", "2016-01-01"]],
- },
- previous_year: {
- last_7_days: ["&", ["birthday", ">=", "2016-03-15"], ["birthday", "<", "2016-03-22"]],
- last_30_days: ["&", ["birthday", ">=", "2016-02-21"], ["birthday", "<", "2016-03-22"]],
- last_365_days: ["&", ["birthday", ">=", "2015-03-23"], ["birthday", "<", "2016-03-22"]],
- last_5_years: ["&", ["birthday", ">=", "2011-03-22"], ["birthday", "<", "2016-03-22"]],
- today: ["&", ["birthday", ">=", "2016-03-22"], ["birthday", "<", "2016-03-23"]],
- this_week: ["&", ["birthday", ">=", "2016-03-21"], ["birthday", "<", "2016-03-28"]],
- this_month: ["&", ["birthday", ">=", "2016-03-01"], ["birthday", "<", "2016-04-01"]],
- this_quarter: ["&", ["birthday", ">=", "2016-01-01"], ["birthday", "<", "2016-04-01"]],
- this_year: ["&", ["birthday", ">=", "2016-01-01"], ["birthday", "<", "2017-01-01"]],
- yesterday: ["&", ["birthday", ">=", "2016-03-21"], ["birthday", "<", "2016-03-22"]],
- last_week: ["&", ["birthday", ">=", "2016-03-14"], ["birthday", "<", "2016-03-21"]],
- last_month: ["&", ["birthday", ">=", "2016-02-01"], ["birthday", "<", "2016-03-01"]],
- last_quarter: ["&", ["birthday", ">=", "2015-10-01"], ["birthday", "<", "2016-01-01"]],
- last_year: ["&", ["birthday", ">=", "2015-01-01"], ["birthday", "<", "2016-01-01"]],
- }
- };
-
- const params = {
- cpStoreConfig: {
- viewInfo: { fields: this.fields },
- searchMenuTypes,
- },
- cpProps: { fields: this.fields, searchMenuTypes },
- search: function (searchQuery) {
- const { timeRanges } = searchQuery;
- const { range, comparisonRange, rangeId, comparisonRangeId } = timeRanges;
- if (!comparisonRangeId) {
- assert.deepEqual(range, ranges[rangeId]);
- } else {
- assert.deepEqual(comparisonRange, comparisonRanges[comparisonRangeId][rangeId]);
- }
- }
- };
- const controlPanel = await createControlPanel(params);
-
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), []);
-
- await cpHelpers.toggleTimeRangeMenu(controlPanel);
-
- for (const o of Object.values(TIME_RANGE_OPTIONS)) {
- await cpHelpers.selectRange(controlPanel, o.id);
- await cpHelpers.applyTimeRange(controlPanel);
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), [`Birthday: ${o.description}`]);
-
- await cpHelpers.toggleTimeRangeMenuBox(controlPanel);
- for (const co of Object.values(COMPARISON_TIME_RANGE_OPTIONS)) {
- await cpHelpers.selectComparisonRange(controlPanel, co.id);
- await cpHelpers.applyTimeRange(controlPanel);
- assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), [`Birthday: ${o.description} / ${co.description}`]);
- }
- await cpHelpers.toggleTimeRangeMenuBox(controlPanel);
- }
-
- controlPanel.destroy();
- unpatchDate();
- });
- });
-});