From 86d64bfb15a298a1c2a588222e8ed3039f95e95a Mon Sep 17 00:00:00 2001 From: akshitasingh Date: Sat, 6 Feb 2021 08:16:30 +0530 Subject: [PATCH] lint fix --- .../grid/column/edit-cells/blank-down.spec.js | 44 +- .../collapse-consecutive-whitespace.spec.js | 38 +- .../common-transforms/proper-display.spec.js | 32 +- .../common-transforms/to-date.spec.js | 46 +- .../common-transforms/to-number.spec.js | 88 +-- .../trim-leading-whitespace.spec.js | 32 +- .../unescape-html-entities.spec.js | 34 +- .../grid/column/edit-cells/fill-down.spec.js | 44 +- .../project/grid/column/facet/facets.spec.js | 714 +++++++++--------- .../project/grid/misc/expressions.spec.js | 526 ++++++------- 10 files changed, 802 insertions(+), 796 deletions(-) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/blank-down.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/blank-down.spec.js index 5920fdec0..77cc94d16 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/blank-down.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/blank-down.spec.js @@ -1,28 +1,28 @@ describe(__filename, function () { - it('Ensure cells are blanked down', function () { - const fixture = [ - ['a', 'b', 'c'], + it('Ensure cells are blanked down', function () { + const fixture = [ + ['a', 'b', 'c'], - ['0a', 'identical', '0c'], - ['1a', 'identical', '1c'], - ['2a', '2b', '2c'], - ['3a', 'also identical', '3c'], - ['4a', 'also identical', '4c'], - ['5a', 'also identical', '5c'], - ] + ['0a', 'identical', '0c'], + ['1a', 'identical', '1c'], + ['2a', '2b', '2c'], + ['3a', 'also identical', '3c'], + ['4a', 'also identical', '4c'], + ['5a', 'also identical', '5c'], + ] - cy.loadAndVisitProject(fixture) + cy.loadAndVisitProject(fixture) - // click - cy.columnActionClick('b', ['Edit cells', 'Blank down']) + // click + cy.columnActionClick('b', ['Edit cells', 'Blank down']) - // ensure notification and cell content - cy.assertNotificationContainingText('Blank down 3 cells') - cy.assertCellEquals(0, 'b', 'identical') // untouched - cy.assertCellEquals(1, 'b', null) // blanked - cy.assertCellEquals(2, 'b', '2b') // untouched - cy.assertCellEquals(3, 'b', 'also identical') // untouched - cy.assertCellEquals(4, 'b', null) // blanked - cy.assertCellEquals(5, 'b', null) // blanked - }) + // ensure notification and cell content + cy.assertNotificationContainingText('Blank down 3 cells') + cy.assertCellEquals(0, 'b', 'identical') // untouched + cy.assertCellEquals(1, 'b', null) // blanked + cy.assertCellEquals(2, 'b', '2b') // untouched + cy.assertCellEquals(3, 'b', 'also identical') // untouched + cy.assertCellEquals(4, 'b', null) // blanked + cy.assertCellEquals(5, 'b', null) // blanked + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/collapse-consecutive-whitespace.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/collapse-consecutive-whitespace.spec.js index 0e69c9ee1..9d989bc7f 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/collapse-consecutive-whitespace.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/collapse-consecutive-whitespace.spec.js @@ -1,23 +1,23 @@ describe(__filename, function () { - it('Ensure multiple whitespaces are collapsed', function () { - const fixture = [ - ['NDB_No', 'Shrt_Desc'], - ['01001', 'THIS IS A TEST'], - ['01002', 'THIS IS ANOTHER TEST'], - ['01003', 'THIS IS a THIRD TEST'], - ] - cy.loadAndVisitProject(fixture) + it('Ensure multiple whitespaces are collapsed', function () { + const fixture = [ + ['NDB_No', 'Shrt_Desc'], + ['01001', 'THIS IS A TEST'], + ['01002', 'THIS IS ANOTHER TEST'], + ['01003', 'THIS IS a THIRD TEST'], + ] + cy.loadAndVisitProject(fixture) - cy.columnActionClick('Shrt_Desc', [ - 'Edit cells', - 'Common transforms', - 'Collapse consecutive whitespace', - ]) + cy.columnActionClick('Shrt_Desc', [ + 'Edit cells', + 'Common transforms', + 'Collapse consecutive whitespace', + ]) - // Check notification and cell content - cy.assertNotificationContainingText('Text transform on 2 cells') - cy.assertCellEquals(0, 'Shrt_Desc', 'THIS IS A TEST') - cy.assertCellEquals(1, 'Shrt_Desc', 'THIS IS ANOTHER TEST') - cy.assertCellEquals(2, 'Shrt_Desc', 'THIS IS a THIRD TEST') - }) + // Check notification and cell content + cy.assertNotificationContainingText('Text transform on 2 cells') + cy.assertCellEquals(0, 'Shrt_Desc', 'THIS IS A TEST') + cy.assertCellEquals(1, 'Shrt_Desc', 'THIS IS ANOTHER TEST') + cy.assertCellEquals(2, 'Shrt_Desc', 'THIS IS a THIRD TEST') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/proper-display.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/proper-display.spec.js index 4674c0d14..2fe90956e 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/proper-display.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/proper-display.spec.js @@ -1,17 +1,23 @@ describe(__filename, function () { - it('Ensure multiple whitespaces are collapsed', function () { - const fixture = [ + it('Ensure multiple whitespaces are collapsed', function () { + const fixture = [ ['tests'], - ['2021-01-31https://www.google.com'], - ['https://www.wikidata.org/wiki/Property:P670 https://www.wikidata.org/wiki/Property:P669 are now mapped to https://schema.org/streetAddress via https://www.wikidata.org/wiki/Property:P2235'], - ['vhjhjjj https://github.com/OpenRefine/OpenRefine/issues/2519'], - ] - cy.loadAndVisitProject(fixture) + ['2021-01-31https://www.google.com'], + [ + 'https://www.wikidata.org/wiki/Property:P670 https://www.wikidata.org/wiki/Property:P669 are now mapped to https://schema.org/streetAddress via https://www.wikidata.org/wiki/Property:P2235', + ], + ['vhjhjjj https://github.com/OpenRefine/OpenRefine/issues/2519'], + ] + cy.loadAndVisitProject(fixture) - - cy.getCell(0,'tests').contains('2021-01-31https://www.google.com') - cy.getCell(1,'tests').children('div').children('a').should('have.attr','href'); - cy.getCell(2,'tests').children('div').children('a').should('have.attr','href'); - - }) + cy.getCell(0, 'tests').contains('2021-01-31https://www.google.com') + cy.getCell(1, 'tests') + .children('div') + .children('a') + .should('have.attr', 'href') + cy.getCell(2, 'tests') + .children('div') + .children('a') + .should('have.attr', 'href') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-date.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-date.spec.js index b07513c7a..88e0142de 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-date.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-date.spec.js @@ -1,28 +1,28 @@ describe(__filename, function () { - it('Ensure only some cells are converted to dates', function () { - const fixture = [ - ['NDB_No', 'A Date'], - ['01001', '2021-01-01'], - ['01002', '2021-01-01 05:35:15'], - ['01003', 'THIS SHOULD NOT BE TOUCHED'], - ] - cy.loadAndVisitProject(fixture) + it('Ensure only some cells are converted to dates', function () { + const fixture = [ + ['NDB_No', 'A Date'], + ['01001', '2021-01-01'], + ['01002', '2021-01-01 05:35:15'], + ['01003', 'THIS SHOULD NOT BE TOUCHED'], + ] + cy.loadAndVisitProject(fixture) - // Update grid - cy.columnActionClick('A Date', [ - 'Edit cells', - 'Common transforms', - 'To date', - ]) + // Update grid + cy.columnActionClick('A Date', [ + 'Edit cells', + 'Common transforms', + 'To date', + ]) - // Check notification and cell content - cy.assertNotificationContainingText('Text transform on 2 cells') - cy.assertCellEquals(0, 'A Date', '2021-01-01T00:00:00Z') - cy.assertCellEquals(1, 'A Date', '2021-01-01T05:35:15Z') - cy.assertCellEquals(2, 'A Date', 'THIS SHOULD NOT BE TOUCHED') + // Check notification and cell content + cy.assertNotificationContainingText('Text transform on 2 cells') + cy.assertCellEquals(0, 'A Date', '2021-01-01T00:00:00Z') + cy.assertCellEquals(1, 'A Date', '2021-01-01T05:35:15Z') + cy.assertCellEquals(2, 'A Date', 'THIS SHOULD NOT BE TOUCHED') - // ensure cells are marked as non-string - cy.assertCellNotString(0, 'A Date') - cy.assertCellNotString(1, 'A Date') - }) + // ensure cells are marked as non-string + cy.assertCellNotString(0, 'A Date') + cy.assertCellNotString(1, 'A Date') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-number.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-number.spec.js index 911c4702d..67245bcd6 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-number.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/to-number.spec.js @@ -1,52 +1,52 @@ describe(__filename, function () { - it('Ensure some cells are converted to numbers, and some remains untouched (int)', function () { - const fixture = [ - ['NDB_No', 'A Number'], - ['01001', 'This is not a number'], - ['01002', '42'], - ['01003', '43'], - ] - cy.loadAndVisitProject(fixture) + it('Ensure some cells are converted to numbers, and some remains untouched (int)', function () { + const fixture = [ + ['NDB_No', 'A Number'], + ['01001', 'This is not a number'], + ['01002', '42'], + ['01003', '43'], + ] + cy.loadAndVisitProject(fixture) - // click - cy.columnActionClick('A Number', [ - 'Edit cells', - 'Common transforms', - 'To number', - ]) + // click + cy.columnActionClick('A Number', [ + 'Edit cells', + 'Common transforms', + 'To number', + ]) - // Ensure notification and cell content - cy.assertNotificationContainingText('Text transform on 2 cells') - cy.assertCellEquals(0, 'A Number', 'This is not a number') - cy.assertCellEquals(1, 'A Number', '42') - cy.assertCellEquals(2, 'A Number', '43') + // Ensure notification and cell content + cy.assertNotificationContainingText('Text transform on 2 cells') + cy.assertCellEquals(0, 'A Number', 'This is not a number') + cy.assertCellEquals(1, 'A Number', '42') + cy.assertCellEquals(2, 'A Number', '43') - // Ensure a numeric type is applied to the cell - cy.assertCellNotString(1, 'A Number') - cy.assertCellNotString(2, 'A Number') - }) + // Ensure a numeric type is applied to the cell + cy.assertCellNotString(1, 'A Number') + cy.assertCellNotString(2, 'A Number') + }) - it('Ensure toNumber works with floats', function () { - const fixture = [ - ['NDB_No', 'A Number'], - ['01001', '42.2'], - ['01002', '43.5'], - ['01002', '43.50000'], - ['01002', '43.500001'], - ] - cy.loadAndVisitProject(fixture) + it('Ensure toNumber works with floats', function () { + const fixture = [ + ['NDB_No', 'A Number'], + ['01001', '42.2'], + ['01002', '43.5'], + ['01002', '43.50000'], + ['01002', '43.500001'], + ] + cy.loadAndVisitProject(fixture) - // click - cy.columnActionClick('A Number', [ - 'Edit cells', - 'Common transforms', - 'To number', - ]) + // click + cy.columnActionClick('A Number', [ + 'Edit cells', + 'Common transforms', + 'To number', + ]) - // Ensure cell content - cy.assertCellEquals(0, 'A Number', '42.2') - cy.assertCellEquals(1, 'A Number', '43.5') - cy.assertCellEquals(2, 'A Number', '43.5') - cy.assertCellEquals(3, 'A Number', '43.500001') - }) + // Ensure cell content + cy.assertCellEquals(0, 'A Number', '42.2') + cy.assertCellEquals(1, 'A Number', '43.5') + cy.assertCellEquals(2, 'A Number', '43.5') + cy.assertCellEquals(3, 'A Number', '43.500001') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/trim-leading-whitespace.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/trim-leading-whitespace.spec.js index 63cabf70e..80478e4c8 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/trim-leading-whitespace.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/trim-leading-whitespace.spec.js @@ -1,21 +1,21 @@ describe(__filename, function () { - it('Ensure multiple leading/tailing whitespaces are trimmed', function () { - const fixture = [ - ['NDB_No', 'A column'], - ['01001', 'TEST'], - ] + it('Ensure multiple leading/tailing whitespaces are trimmed', function () { + const fixture = [ + ['NDB_No', 'A column'], + ['01001', 'TEST'], + ] - cy.loadAndVisitProject(fixture) - cy.editCell(0, 'A column', ' TEST ') + cy.loadAndVisitProject(fixture) + cy.editCell(0, 'A column', ' TEST ') - cy.columnActionClick('A column', [ - 'Edit cells', - 'Common transforms', - 'Trim leading and trailing whitespace', - ]) + cy.columnActionClick('A column', [ + 'Edit cells', + 'Common transforms', + 'Trim leading and trailing whitespace', + ]) - // ensure notification and cell content - cy.assertNotificationContainingText('Text transform on 1 cells') - cy.assertCellEquals(0, 'A column', 'TEST') - }) + // ensure notification and cell content + cy.assertNotificationContainingText('Text transform on 1 cells') + cy.assertCellEquals(0, 'A column', 'TEST') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/unescape-html-entities.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/unescape-html-entities.spec.js index 5565fe8cf..4e6171c7c 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/unescape-html-entities.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/common-transforms/unescape-html-entities.spec.js @@ -1,22 +1,22 @@ describe(__filename, function () { - it('Ensure escaped html entities are unescaped', function () { - const fixture = [ - ['NDB_No', 'A column'], - ['01001', ''], - ['01001', '<img src="test" />'], - ] + it('Ensure escaped html entities are unescaped', function () { + const fixture = [ + ['NDB_No', 'A column'], + ['01001', ''], + ['01001', '<img src="test" />'], + ] - cy.loadAndVisitProject(fixture, 'ok') + cy.loadAndVisitProject(fixture, 'ok') - cy.columnActionClick('A column', [ - 'Edit cells', - 'Common transforms', - 'Unescape HTML entities', - ]) + cy.columnActionClick('A column', [ + 'Edit cells', + 'Common transforms', + 'Unescape HTML entities', + ]) - // ensure notification and cell content - cy.assertNotificationContainingText('Text transform on 1 cells') - cy.assertCellEquals(0, 'A column', '') - cy.assertCellEquals(1, 'A column', '') - }) + // ensure notification and cell content + cy.assertNotificationContainingText('Text transform on 1 cells') + cy.assertCellEquals(0, 'A column', '') + cy.assertCellEquals(1, 'A column', '') + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/fill-down.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/fill-down.spec.js index 1a8856ec4..2c7c5e733 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/fill-down.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/edit-cells/fill-down.spec.js @@ -1,27 +1,27 @@ describe(__filename, function () { - it('Ensure cells are filled down', function () { - const fixture = [ - ['a', 'b', 'c'], + it('Ensure cells are filled down', function () { + const fixture = [ + ['a', 'b', 'c'], - ['0a', '0b', '0c'], - ['1a', null, '1c'], - ['2a', '2b', '2c'], - ['3a', null, '3c'], - ['4a', null, '4c'], - ['5a', '5b', '5c'], - ] + ['0a', '0b', '0c'], + ['1a', null, '1c'], + ['2a', '2b', '2c'], + ['3a', null, '3c'], + ['4a', null, '4c'], + ['5a', '5b', '5c'], + ] - cy.loadAndVisitProject(fixture) - // click - cy.columnActionClick('b', ['Edit cells', 'Fill down']) + cy.loadAndVisitProject(fixture) + // click + cy.columnActionClick('b', ['Edit cells', 'Fill down']) - // ensure notification and cell content - cy.assertNotificationContainingText('Fill down 3 cells in column b') - cy.assertCellEquals(0, 'b', '0b') // untouched - cy.assertCellEquals(1, 'b', '0b') // filled - cy.assertCellEquals(2, 'b', '2b') // untouched - cy.assertCellEquals(3, 'b', '2b') // filled - cy.assertCellEquals(4, 'b', '2b') // filled - cy.assertCellEquals(5, 'b', '5b') // untouched - }) + // ensure notification and cell content + cy.assertNotificationContainingText('Fill down 3 cells in column b') + cy.assertCellEquals(0, 'b', '0b') // untouched + cy.assertCellEquals(1, 'b', '0b') // filled + cy.assertCellEquals(2, 'b', '2b') // untouched + cy.assertCellEquals(3, 'b', '2b') // filled + cy.assertCellEquals(4, 'b', '2b') // filled + cy.assertCellEquals(5, 'b', '5b') // untouched + }) }) diff --git a/main/tests/cypress/cypress/integration/project/grid/column/facet/facets.spec.js b/main/tests/cypress/cypress/integration/project/grid/column/facet/facets.spec.js index 74e0a6535..3a50ddbfa 100644 --- a/main/tests/cypress/cypress/integration/project/grid/column/facet/facets.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/column/facet/facets.spec.js @@ -3,415 +3,415 @@ * It's using "text facet" as it is the most simple facet */ describe(__filename, function () { - it('Verify facets panel (left-panel) appears with no facets yet', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets') - .should('exist') - .contains('Using facets and filters') - }) + it('Verify facets panel (left-panel) appears with no facets yet', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets') + .should('exist') + .contains('Using facets and filters') + }) - it('Test the display of multiple facets', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - cy.columnActionClick('Water', ['Facet', 'Text facet']) + it('Test the display of multiple facets', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.getFacetContainer('NDB_No').should('exist') - cy.getFacetContainer('Shrt_Desc').should('exist') - cy.getFacetContainer('Water').should('exist') - }) + cy.getFacetContainer('NDB_No').should('exist') + cy.getFacetContainer('Shrt_Desc').should('exist') + cy.getFacetContainer('Water').should('exist') + }) - it('Test the Remove All button', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets .facets-container .facet-container').should( - 'have.length', - 2 - ) + it('Test the Remove All button', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets .facets-container .facet-container').should( + 'have.length', + 2 + ) - cy.get('#refine-tabs-facets a').contains('Remove All').click() - cy.get('#refine-tabs-facets .facets-container .facet-container').should( - 'have.length', - 0 - ) - cy.get('#refine-tabs-facets') - .should('exist') - .contains('Using facets and filters') - }) + cy.get('#refine-tabs-facets a').contains('Remove All').click() + cy.get('#refine-tabs-facets .facets-container .facet-container').should( + 'have.length', + 0 + ) + cy.get('#refine-tabs-facets') + .should('exist') + .contains('Using facets and filters') + }) - it('Test the Reset All button', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.columnActionClick('Energ_Kcal', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets .facets-container .facet-container').should( - 'have.length', - 2 - ) + it('Test the Reset All button', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) + cy.columnActionClick('Energ_Kcal', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets .facets-container .facet-container').should( + 'have.length', + 2 + ) - // Click to facet 1, select first value - cy.getFacetContainer('Water') - .find('.facet-choice:first-child .facet-choice-label') - .click() - cy.getFacetContainer('Water') - .find('.facet-choice:first-child') - .should('have.class', 'facet-choice-selected') + // Click to facet 1, select first value + cy.getFacetContainer('Water') + .find('.facet-choice:first-child .facet-choice-label') + .click() + cy.getFacetContainer('Water') + .find('.facet-choice:first-child') + .should('have.class', 'facet-choice-selected') - // Click to facet 2, select first value - cy.getFacetContainer('Energ_Kcal') - .find('.facet-choice:first-child .facet-choice-label') - .click() - cy.getFacetContainer('Energ_Kcal') - .find('.facet-choice:first-child') - .should('have.class', 'facet-choice-selected') + // Click to facet 2, select first value + cy.getFacetContainer('Energ_Kcal') + .find('.facet-choice:first-child .facet-choice-label') + .click() + cy.getFacetContainer('Energ_Kcal') + .find('.facet-choice:first-child') + .should('have.class', 'facet-choice-selected') - cy.get('#refine-tabs-facets a').contains('Reset All').click() + cy.get('#refine-tabs-facets a').contains('Reset All').click() - // all facets selections should be gone - cy.getFacetContainer('Water') - .find('.facet-choice:first-child') - .should('not.have.class', 'facet-choice-selected') - cy.getFacetContainer('Energ_Kcal') - .find('.facet-choice:first-child') - .should('not.have.class', 'facet-choice-selected') - }) + // all facets selections should be gone + cy.getFacetContainer('Water') + .find('.facet-choice:first-child') + .should('not.have.class', 'facet-choice-selected') + cy.getFacetContainer('Energ_Kcal') + .find('.facet-choice:first-child') + .should('not.have.class', 'facet-choice-selected') + }) - it('Create a simple text facet, check various elements in a Facet', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets').should('exist') + it('Create a simple text facet, check various elements in a Facet', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets').should('exist') - cy.getFacetContainer('Water').should('exist') - cy.getFacetContainer('Water').contains('182 choices') - cy.getFacetContainer('Water').contains('Sort by') - cy.getFacetContainer('Water').contains('Cluster') - }) + cy.getFacetContainer('Water').should('exist') + cy.getFacetContainer('Water').contains('182 choices') + cy.getFacetContainer('Water').contains('Sort by') + cy.getFacetContainer('Water').contains('Cluster') + }) - it('Delete a facet', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) + it('Delete a facet', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.getFacetContainer('Water').find('a.facet-title-remove').click() - cy.getFacetContainer('Water').should('not.exist') - }) + cy.getFacetContainer('Water').find('a.facet-title-remove').click() + cy.getFacetContainer('Water').should('not.exist') + }) - it('Test editing a facet ("change")', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.getFacetContainer('NDB_No') - .find('a[bind="changeButton"]') - .contains('change') - cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() - cy.get('.dialog-container .dialog-header').contains( - `Edit Facet's Expression` - ) - }) + it('Test editing a facet ("change")', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.getFacetContainer('NDB_No') + .find('a[bind="changeButton"]') + .contains('change') + cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() + cy.get('.dialog-container .dialog-header').contains( + `Edit Facet's Expression` + ) + }) - it('Test editing a facet / Preview', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + it('Test editing a facet / Preview', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - // test the tab - cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() - cy.get('.dialog-container #expression-preview-tabs-preview').should( - 'be.visible' - ) - // test the content - cy.get('.dialog-container #expression-preview-tabs-preview').contains( - 'row' - ) - }) + // test the tab + cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() + cy.get('.dialog-container #expression-preview-tabs-preview').should( + 'be.visible' + ) + // test the content + cy.get('.dialog-container #expression-preview-tabs-preview').contains( + 'row' + ) + }) - it('Test editing a facet / History', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() + it('Test editing a facet / History', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() - // test the tab - cy.get('.dialog-container a[bind="or_dialog_history"]').click() - cy.get('.dialog-container #expression-preview-tabs-history').should( - 'be.visible' - ) - // test the content - cy.get('.dialog-container #expression-preview-tabs-history').contains( - 'Expression' - ) - }) + // test the tab + cy.get('.dialog-container a[bind="or_dialog_history"]').click() + cy.get('.dialog-container #expression-preview-tabs-history').should( + 'be.visible' + ) + // test the content + cy.get('.dialog-container #expression-preview-tabs-history').contains( + 'Expression' + ) + }) - it('Test editing a facet / Starred', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() + it('Test editing a facet / Starred', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() - // test the tab - cy.get('.dialog-container a[bind="or_dialog_starred"]').click() - cy.get('.dialog-container #expression-preview-tabs-starred').should( - 'be.visible' - ) - // test the content - cy.get('.dialog-container #expression-preview-tabs-starred').contains( - 'Expression' - ) - }) + // test the tab + cy.get('.dialog-container a[bind="or_dialog_starred"]').click() + cy.get('.dialog-container #expression-preview-tabs-starred').should( + 'be.visible' + ) + // test the content + cy.get('.dialog-container #expression-preview-tabs-starred').contains( + 'Expression' + ) + }) - it('Test editing a facet / Help', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) - cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() + it('Test editing a facet / Help', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('NDB_No', ['Facet', 'Text facet']) + cy.getFacetContainer('NDB_No').find('a[bind="changeButton"]').click() - // test the tab - cy.get('.dialog-container a[bind="or_dialog_help"]').click() - cy.get('.dialog-container #expression-preview-tabs-help').should( - 'be.visible' - ) - // test the content - cy.get('.dialog-container #expression-preview-tabs-help').contains( - 'Variables' - ) - }) + // test the tab + cy.get('.dialog-container a[bind="or_dialog_help"]').click() + cy.get('.dialog-container #expression-preview-tabs-help').should( + 'be.visible' + ) + // test the content + cy.get('.dialog-container #expression-preview-tabs-help').contains( + 'Variables' + ) + }) - it('Create a facet, Sorts, by count', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets').should('exist') + it('Create a facet, Sorts, by count', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets').should('exist') - // Ensure sort should be by name by default - cy.getFacetContainer('Water').contains('0.24') - cy.getFacetContainer('Water').find('a[bind="sortByCountLink"]').click() - // Sort should now be by count - cy.getFacetContainer('Water').contains('15.87') - }) + // Ensure sort should be by name by default + cy.getFacetContainer('Water').contains('0.24') + cy.getFacetContainer('Water').find('a[bind="sortByCountLink"]').click() + // Sort should now be by count + cy.getFacetContainer('Water').contains('15.87') + }) - it('Create a facet, Sorts multiple', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.get('#refine-tabs-facets').should('exist') + it('Create a facet, Sorts multiple', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) + cy.get('#refine-tabs-facets').should('exist') - // Sort should be by name by default - cy.getFacetContainer('Water').contains('0.24') - cy.getFacetContainer('Water').find('a[bind="sortByCountLink"]').click() - // Sort should now be by count - cy.getFacetContainer('Water').contains('15.87') - cy.getFacetContainer('Water').find('a[bind="sortByNameLink"]').click() - cy.getFacetContainer('Water').contains('0.24') - }) + // Sort should be by name by default + cy.getFacetContainer('Water').contains('0.24') + cy.getFacetContainer('Water').find('a[bind="sortByCountLink"]').click() + // Sort should now be by count + cy.getFacetContainer('Water').contains('15.87') + cy.getFacetContainer('Water').find('a[bind="sortByNameLink"]').click() + cy.getFacetContainer('Water').contains('0.24') + }) - it('Test include/exlude filters', function () { - // Because the toggle of include/exclude buttons is unstable - // we force include/exclude to be visible - // This test focus solely on ensuring that filters are effectively applied to the grid - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + it('Test include/exlude filters', function () { + // Because the toggle of include/exclude buttons is unstable + // we force include/exclude to be visible + // This test focus solely on ensuring that filters are effectively applied to the grid + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - // force visibility - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') + // force visibility + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') - // include ALLSPICE,GROUND, and check rows - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('ALLSPICE,GROUND') - .parent() - .find('.facet-choice-toggle') - .click() - cy.getCell(0, 'Shrt_Desc').should('to.contain', 'ALLSPICE,GROUND') - cy.get('#tool-panel').contains('1 matching rows') + // include ALLSPICE,GROUND, and check rows + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('ALLSPICE,GROUND') + .parent() + .find('.facet-choice-toggle') + .click() + cy.getCell(0, 'Shrt_Desc').should('to.contain', 'ALLSPICE,GROUND') + cy.get('#tool-panel').contains('1 matching rows') - // OR is refreshing facets, need to show the toggle again - cy.waitForOrOperation() - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') + // OR is refreshing facets, need to show the toggle again + cy.waitForOrOperation() + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') - // include CELERY SEED, and check rows - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('ANISE SEED') - .parent() - .find('.facet-choice-toggle') - .click() - cy.getCell(1, 'Shrt_Desc').should('to.contain', 'ANISE SEED') - cy.get('#tool-panel').contains('2 matching rows') + // include CELERY SEED, and check rows + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('ANISE SEED') + .parent() + .find('.facet-choice-toggle') + .click() + cy.getCell(1, 'Shrt_Desc').should('to.contain', 'ANISE SEED') + cy.get('#tool-panel').contains('2 matching rows') - // OR ir refreshing facets, need to show the toggle again - cy.waitForOrOperation() - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') + // OR ir refreshing facets, need to show the toggle again + cy.waitForOrOperation() + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') - // include a third one, CELERY SEED, and check rows - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('BUTTER OIL,ANHYDROUS') - .parent() - .find('.facet-choice-toggle') - .click() - cy.getCell(0, 'Shrt_Desc').should('to.contain', 'BUTTER OIL,ANHYDROUS') // this row is added first - cy.get('#tool-panel').contains('3 matching rows') + // include a third one, CELERY SEED, and check rows + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('BUTTER OIL,ANHYDROUS') + .parent() + .find('.facet-choice-toggle') + .click() + cy.getCell(0, 'Shrt_Desc').should('to.contain', 'BUTTER OIL,ANHYDROUS') // this row is added first + cy.get('#tool-panel').contains('3 matching rows') - // OR ir refreshing facets, need to show the toggle again - cy.waitForOrOperation() - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') + // OR ir refreshing facets, need to show the toggle again + cy.waitForOrOperation() + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') - // EXCLUDE ALLSPICE,GROUND - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('ALLSPICE,GROUND') - .parent() - .find('.facet-choice-toggle') - .click() - cy.get('#tool-panel').contains('2 matching rows') - }) + // EXCLUDE ALLSPICE,GROUND + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('ALLSPICE,GROUND') + .parent() + .find('.facet-choice-toggle') + .click() + cy.get('#tool-panel').contains('2 matching rows') + }) - it('Test include/exclude, invert', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + it('Test include/exclude, invert', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - // do a basic facetting, expect 1 row - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('ALLSPICE,GROUND') - .parent() - .find('.facet-choice-toggle') - .click() - cy.getCell(0, 'Shrt_Desc').should('to.contain', 'ALLSPICE,GROUND') - cy.get('#tool-panel').contains('1 matching rows') + // do a basic facetting, expect 1 row + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('ALLSPICE,GROUND') + .parent() + .find('.facet-choice-toggle') + .click() + cy.getCell(0, 'Shrt_Desc').should('to.contain', 'ALLSPICE,GROUND') + cy.get('#tool-panel').contains('1 matching rows') - // now invert, expect 198 rows - cy.getFacetContainer('Shrt_Desc').find('a[bind="invertButton"]').click() - cy.waitForOrOperation() - cy.get('#tool-panel').contains('198 matching rows') - cy.getFacetContainer('Shrt_Desc') - .find('a[bind="invertButton"]') - .should('have.class', 'facet-mode-inverted') + // now invert, expect 198 rows + cy.getFacetContainer('Shrt_Desc').find('a[bind="invertButton"]').click() + cy.waitForOrOperation() + cy.get('#tool-panel').contains('198 matching rows') + cy.getFacetContainer('Shrt_Desc') + .find('a[bind="invertButton"]') + .should('have.class', 'facet-mode-inverted') - // remove invert - cy.getFacetContainer('Shrt_Desc').find('a[bind="invertButton"]').click() - cy.waitForOrOperation() - cy.get('#tool-panel').contains('1 matching rows') - }) + // remove invert + cy.getFacetContainer('Shrt_Desc').find('a[bind="invertButton"]').click() + cy.waitForOrOperation() + cy.get('#tool-panel').contains('1 matching rows') + }) - it('Test facet reset', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + it('Test facet reset', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - // do a basic facetting, expect 1 row - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-toggle') - .invoke('attr', 'style', 'visibility:visible') - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice') - .contains('ALLSPICE,GROUND') - .parent() - .find('.facet-choice-toggle') - .click() - cy.get('#tool-panel').contains('1 matching rows') + // do a basic facetting, expect 1 row + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-toggle') + .invoke('attr', 'style', 'visibility:visible') + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice') + .contains('ALLSPICE,GROUND') + .parent() + .find('.facet-choice-toggle') + .click() + cy.get('#tool-panel').contains('1 matching rows') - // now reset, expect 199 - cy.getFacetContainer('Shrt_Desc') - .find('a[bind="resetButton"]') - .contains('reset') - .click() - cy.get('#tool-panel').contains('199 rows') - cy.getFacetContainer('Shrt_Desc') - .find('a[bind="resetButton"]') - .should('not.be.visible') - }) + // now reset, expect 199 + cy.getFacetContainer('Shrt_Desc') + .find('a[bind="resetButton"]') + .contains('reset') + .click() + cy.get('#tool-panel').contains('199 rows') + cy.getFacetContainer('Shrt_Desc') + .find('a[bind="resetButton"]') + .should('not.be.visible') + }) - /** - * This test ensure the refresh button behavior when editing a facet - * The grid is updated with a duplicate on "BUTTER,WITH SALT" - * Then we ensure the number of occurences is respected - */ - it('Test refresh reset', function () { - cy.loadAndVisitProject('food.mini') - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + /** + * This test ensure the refresh button behavior when editing a facet + * The grid is updated with a duplicate on "BUTTER,WITH SALT" + * Then we ensure the number of occurences is respected + */ + it('Test refresh reset', function () { + cy.loadAndVisitProject('food.mini') + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - cy.get('.facet-choice').should('have.length', 2) - cy.get('.facet-choice:nth-child(1)').contains( - 'BUTTER,WHIPPED,WITH SALT' - ) - cy.get('.facet-choice:nth-child(2)').contains('BUTTER,WITH SALT') + cy.get('.facet-choice').should('have.length', 2) + cy.get('.facet-choice:nth-child(1)').contains( + 'BUTTER,WHIPPED,WITH SALT' + ) + cy.get('.facet-choice:nth-child(2)').contains('BUTTER,WITH SALT') - cy.editCell(1, 'Shrt_Desc', 'BUTTER,WITH SALT') - cy.get('#refine-tabs-facets .browsing-panel-controls-refresh') - .contains('Refresh') - .click() - cy.get('.facet-choice').should('have.length', 1) - cy.get('.facet-choice:first-child').contains('BUTTER,WITH SALT') - cy.getFacetContainer('Shrt_Desc') - .find('.facet-choice-count') - .contains(2) - }) + cy.editCell(1, 'Shrt_Desc', 'BUTTER,WITH SALT') + cy.get('#refine-tabs-facets .browsing-panel-controls-refresh') + .contains('Refresh') + .click() + cy.get('.facet-choice').should('have.length', 1) + cy.get('.facet-choice:first-child').contains('BUTTER,WITH SALT') + cy.getFacetContainer('Shrt_Desc') + .find('.facet-choice-count') + .contains(2) + }) - it('Test facet by choice count', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) - cy.getFacetContainer('Shrt_Desc') - .find('.facet-body-controls') - .contains('Facet by choice counts') - .click() + it('Test facet by choice count', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Shrt_Desc', ['Facet', 'Text facet']) + cy.getFacetContainer('Shrt_Desc') + .find('.facet-body-controls') + .contains('Facet by choice counts') + .click() - cy.get(`#refine-tabs-facets .facets-container .facet-container#facet-1`) - .should('exist') - .contains('Shrt_Desc') - }) + cy.get(`#refine-tabs-facets .facets-container .facet-container#facet-1`) + .should('exist') + .contains('Shrt_Desc') + }) - it('Test the mass edit from a Facet', function () { - cy.loadAndVisitProject('food.small') - cy.columnActionClick('Water', ['Facet', 'Text facet']) + it('Test the mass edit from a Facet', function () { + cy.loadAndVisitProject('food.small') + cy.columnActionClick('Water', ['Facet', 'Text facet']) - cy.getFacetContainer('Water').within(() => { - cy.get('.facet-choice') - .contains('15.87') - .parent() - .trigger('mouseover') - .find('a.facet-choice-edit') - .contains('edit') - .should('be.visible') - .click() - }) + cy.getFacetContainer('Water').within(() => { + cy.get('.facet-choice') + .contains('15.87') + .parent() + .trigger('mouseover') + .find('a.facet-choice-edit') + .contains('edit') + .should('be.visible') + .click() + }) - // mass edit all cells that have Water = 15.87 - cy.get('.data-table-cell-editor textarea').type(50) - cy.get('.data-table-cell-editor button').contains('Apply').click() + // mass edit all cells that have Water = 15.87 + cy.get('.data-table-cell-editor textarea').type(50) + cy.get('.data-table-cell-editor button').contains('Apply').click() - // ensure rows has been modified - cy.getCell(0, 'Water').should('to.contain', 50) - cy.getCell(1, 'Water').should('to.contain', 50) + // ensure rows has been modified + cy.getCell(0, 'Water').should('to.contain', 50) + cy.getCell(1, 'Water').should('to.contain', 50) - // ensure modification is made only to the rows that had 15.87, not the others - cy.getCell(2, 'Water').should('to.contain', 0.24) - }) + // ensure modification is made only to the rows that had 15.87, not the others + cy.getCell(2, 'Water').should('to.contain', 0.24) + }) - // // This test is unstable, mouseover behavior is unpredictable - // // This might be because the element is detached from the DOM in the middle - // // it('Test include/exlude toggle', function () { - // // cy.loadAndVisitProject('food.small'); - // // cy.columnActionClick('NDB_No', ['Facet', 'Text facet']); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"]').trigger('mouseover'); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('include').should('be.visible'); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').click(); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('exclude'); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').click(); - // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('include'); - // // }); + // // This test is unstable, mouseover behavior is unpredictable + // // This might be because the element is detached from the DOM in the middle + // // it('Test include/exlude toggle', function () { + // // cy.loadAndVisitProject('food.small'); + // // cy.columnActionClick('NDB_No', ['Facet', 'Text facet']); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"]').trigger('mouseover'); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('include').should('be.visible'); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').click(); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('exclude'); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').click(); + // // cy.getFacetContainer('NDB_No').find('.facet-choice[choiceindex="0"] a.facet-choice-toggle').contains('include'); + // // }); - // it('Test collapsing facet panels', function () { - // The following test does not work - // Because the facet panels uses soem weird CSS with overflow:hidden, Cypress can not detect it - // //// # cy.loadAndVisitProject('food.small'); - // //// # cy.columnActionClick('NDB_No', ['Facet', 'Text facet']); - // //// # ensure facet inner panel is visible - // //// # cy.get('#refine-tabs-facets .facets-container li:nth-child(1) .facet-body-inner').should('be.visible'); - // //// #collapse the panel - // //// # cy.get('#refine-tabs-facets .facets-container li:nth-child(1) a[bind="minimizeButton"]').click(); - // //// + // it('Test collapsing facet panels', function () { + // The following test does not work + // Because the facet panels uses soem weird CSS with overflow:hidden, Cypress can not detect it + // //// # cy.loadAndVisitProject('food.small'); + // //// # cy.columnActionClick('NDB_No', ['Facet', 'Text facet']); + // //// # ensure facet inner panel is visible + // //// # cy.get('#refine-tabs-facets .facets-container li:nth-child(1) .facet-body-inner').should('be.visible'); + // //// #collapse the panel + // //// # cy.get('#refine-tabs-facets .facets-container li:nth-child(1) a[bind="minimizeButton"]').click(); + // //// }) diff --git a/main/tests/cypress/cypress/integration/project/grid/misc/expressions.spec.js b/main/tests/cypress/cypress/integration/project/grid/misc/expressions.spec.js index 992b7aa9d..ccd5ece90 100644 --- a/main/tests/cypress/cypress/integration/project/grid/misc/expressions.spec.js +++ b/main/tests/cypress/cypress/integration/project/grid/misc/expressions.spec.js @@ -2,7 +2,7 @@ * Utility method to load an expression panel, used by almost all the tests */ function loadExpressionPanel() { - cy.columnActionClick('Shrt_Desc', ['Facet', 'Custom text facet']) + cy.columnActionClick('Shrt_Desc', ['Facet', 'Custom text facet']) } /** @@ -10,304 +10,304 @@ function loadExpressionPanel() { * Need to wait for OpenRefine to preview the result, hence the cy.wait */ function typeExpression(expression) { - cy.get('textarea.expression-preview-code').type(expression) - cy.wait(250) + cy.get('textarea.expression-preview-code').type(expression) + cy.wait(250) } /** * Generate a unique GREL expression to be used for testing */ function generateUniqueExpression() { - return `value+${Date.now()}` + return `value+${Date.now()}` } describe(__filename, function () { - it('Test the layout of the expression panel', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() + it('Test the layout of the expression panel', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() - cy.get('.dialog-container').within(() => { - cy.get('td[bind="or_dialog_expr"]').contains('Expression') - cy.get( - 'select[bind="expressionPreviewLanguageSelect"] option' - ).should('have.length', 3) - cy.get('textarea.expression-preview-code').should('exist') + cy.get('.dialog-container').within(() => { + cy.get('td[bind="or_dialog_expr"]').contains('Expression') + cy.get( + 'select[bind="expressionPreviewLanguageSelect"] option' + ).should('have.length', 3) + cy.get('textarea.expression-preview-code').should('exist') - cy.get('.dialog-footer button:nth-child(1)').should( - 'to.contain', - 'OK' - ) - cy.get('.dialog-footer button:nth-child(2)').should( - 'to.contain', - 'Cancel' - ) - }) - }) + cy.get('.dialog-footer button:nth-child(1)').should( + 'to.contain', + 'OK' + ) + cy.get('.dialog-footer button:nth-child(2)').should( + 'to.contain', + 'Cancel' + ) + }) + }) - it('Test a valid Grel expression', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - typeExpression('value.toLowercase()') - cy.get('.expression-preview-parsing-status').contains( - 'No syntax error.' - ) - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'butter,with salt') - }) + it('Test a valid Grel expression', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + typeExpression('value.toLowercase()') + cy.get('.expression-preview-parsing-status').contains( + 'No syntax error.' + ) + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'butter,with salt') + }) - it('Test a valid Python expression', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'jython' - ) - typeExpression('return value.lower()') - cy.get('.expression-preview-parsing-status').contains( - 'No syntax error.' - ) - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'butter,with salt') - }) + it('Test a valid Python expression', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'jython' + ) + typeExpression('return value.lower()') + cy.get('.expression-preview-parsing-status').contains( + 'No syntax error.' + ) + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'butter,with salt') + }) - it('Test a valid Clojure expression', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'clojure' - ) - typeExpression('(.. value (toLowerCase) )') - cy.get('.expression-preview-parsing-status').contains( - 'No syntax error.' - ) - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'butter,with salt') - }) + it('Test a valid Clojure expression', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'clojure' + ) + typeExpression('(.. value (toLowerCase) )') + cy.get('.expression-preview-parsing-status').contains( + 'No syntax error.' + ) + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'butter,with salt') + }) - it('Test a Grel syntax error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - typeExpression('()') - cy.get('.expression-preview-parsing-status').contains('Parsing error') - }) + it('Test a Grel syntax error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + typeExpression('()') + cy.get('.expression-preview-parsing-status').contains('Parsing error') + }) - it('Test a Python syntax error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'jython' - ) - typeExpression('(;)') - cy.get('.expression-preview-parsing-status').contains('Internal error') - }) + it('Test a Python syntax error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'jython' + ) + typeExpression('(;)') + cy.get('.expression-preview-parsing-status').contains('Internal error') + }) - it('Test a Clojure syntax error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'clojure' - ) - typeExpression('(;)') - cy.get('.expression-preview-parsing-status').contains( - 'Syntax error reading source' - ) - }) + it('Test a Clojure syntax error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'clojure' + ) + typeExpression('(;)') + cy.get('.expression-preview-parsing-status').contains( + 'Syntax error reading source' + ) + }) - it('Test a Grel language error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - typeExpression('value.thisGrelFunctionDoesNotExists()') - cy.get('.expression-preview-parsing-status').contains( - 'Unknown function thisGrelFunctionDoesNotExists' - ) - }) + it('Test a Grel language error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + typeExpression('value.thisGrelFunctionDoesNotExists()') + cy.get('.expression-preview-parsing-status').contains( + 'Unknown function thisGrelFunctionDoesNotExists' + ) + }) - it('Test a Python language error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'jython' - ) - typeExpression('return value.thisPythonFunctionDoesNotExists()') + it('Test a Python language error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'jython' + ) + typeExpression('return value.thisPythonFunctionDoesNotExists()') - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'Error: Traceback') - }) + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'Error: Traceback') + }) - it('Test a Clojure language error', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'clojure' - ) - typeExpression('(.. value (thisClojureFunctionDoesNotExists) )') - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'Error: No matching method') - }) + it('Test a Clojure language error', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'clojure' + ) + typeExpression('(.. value (thisClojureFunctionDoesNotExists) )') + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'Error: No matching method') + }) - it('Test switching from one langage to another', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - typeExpression('(.. value (toLowerCase) )') - // error is expected, this is clojure language - cy.get('.expression-preview-parsing-status').should( - 'to.contain', - 'Parsing error' - ) - // switching to clojure - cy.get('select[bind="expressionPreviewLanguageSelect"]').select( - 'clojure' - ) - cy.get('.expression-preview-parsing-status').should( - 'not.to.contain', - 'Parsing error' - ) - }) + it('Test switching from one langage to another', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + typeExpression('(.. value (toLowerCase) )') + // error is expected, this is clojure language + cy.get('.expression-preview-parsing-status').should( + 'to.contain', + 'Parsing error' + ) + // switching to clojure + cy.get('select[bind="expressionPreviewLanguageSelect"]').select( + 'clojure' + ) + cy.get('.expression-preview-parsing-status').should( + 'not.to.contain', + 'Parsing error' + ) + }) - it('Test the preview (GREL)', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - typeExpression('value.toLowercase()') + it('Test the preview (GREL)', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + typeExpression('value.toLowercase()') - cy.get( - '.expression-preview-table-wrapper tr:nth-child(1) td:last-child' - ).should('to.contain', 'value.toLowercase()') - cy.get( - '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' - ).should('to.contain', 'butter,with salt') - cy.get( - '.expression-preview-table-wrapper tr:nth-child(3) td:last-child' - ).should('to.contain', 'butter,whipped,with salt') - }) + cy.get( + '.expression-preview-table-wrapper tr:nth-child(1) td:last-child' + ).should('to.contain', 'value.toLowercase()') + cy.get( + '.expression-preview-table-wrapper tr:nth-child(2) td:last-child' + ).should('to.contain', 'butter,with salt') + cy.get( + '.expression-preview-table-wrapper tr:nth-child(3) td:last-child' + ).should('to.contain', 'butter,whipped,with salt') + }) - it('Test the help tab', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('#expression-preview-tabs li').contains('Help').click() - cy.get('#expression-preview-tabs-help').should('be.visible') - cy.get('#expression-preview-tabs-help').should( - 'to.contain', - `The current cell. It has a few fields: 'value', 'recon' and 'errorMessage'.` - ) - }) + it('Test the help tab', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('#expression-preview-tabs li').contains('Help').click() + cy.get('#expression-preview-tabs-help').should('be.visible') + cy.get('#expression-preview-tabs-help').should( + 'to.contain', + `The current cell. It has a few fields: 'value', 'recon' and 'errorMessage'.` + ) + }) - it('Test the history behavior, ensure expressions are stored', function () { - cy.loadAndVisitProject('food.mini') - // Because history is shared across projects, we need to use an expression that is unique + it('Test the history behavior, ensure expressions are stored', function () { + cy.loadAndVisitProject('food.mini') + // Because history is shared across projects, we need to use an expression that is unique - // Use a first unique expression - const uniqueExpression = generateUniqueExpression() - loadExpressionPanel() - typeExpression(uniqueExpression) - cy.get('.dialog-footer button').contains('OK').click() - // ensure the function has been added to the facet - cy.get('#refine-tabs-facets').contains( - uniqueExpression.replace('()', '') - ) + // Use a first unique expression + const uniqueExpression = generateUniqueExpression() + loadExpressionPanel() + typeExpression(uniqueExpression) + cy.get('.dialog-footer button').contains('OK').click() + // ensure the function has been added to the facet + cy.get('#refine-tabs-facets').contains( + uniqueExpression.replace('()', '') + ) - // Reload and review history - // Ensure the previously used expression is listed - loadExpressionPanel() - cy.get('#expression-preview-tabs li').contains('History').click() - cy.get('#expression-preview-tabs-history') - .should('be.visible') - .should('to.contain', uniqueExpression) - }) + // Reload and review history + // Ensure the previously used expression is listed + loadExpressionPanel() + cy.get('#expression-preview-tabs li').contains('History').click() + cy.get('#expression-preview-tabs-history') + .should('be.visible') + .should('to.contain', uniqueExpression) + }) - it('Test the reuse of expressions from the history', function () { - cy.loadAndVisitProject('food.mini') - // Because history is shared across projects, we need to build and use an expression that is unique - const uniqueExpression = generateUniqueExpression() - loadExpressionPanel() - typeExpression(uniqueExpression) - cy.get('.dialog-footer button').contains('OK').click() - cy.get('#refine-tabs-facets').contains( - uniqueExpression.replace('()', '') - ) + it('Test the reuse of expressions from the history', function () { + cy.loadAndVisitProject('food.mini') + // Because history is shared across projects, we need to build and use an expression that is unique + const uniqueExpression = generateUniqueExpression() + loadExpressionPanel() + typeExpression(uniqueExpression) + cy.get('.dialog-footer button').contains('OK').click() + cy.get('#refine-tabs-facets').contains( + uniqueExpression.replace('()', '') + ) - // Reload and review history - // Ensure the previously used expression is there - // Use it - loadExpressionPanel() - cy.get('#expression-preview-tabs li').contains('History').click() - cy.get('#expression-preview-tabs-history tr td') - .contains(uniqueExpression) - .parent() - .find('a') - .contains('Reuse') - .click() + // Reload and review history + // Ensure the previously used expression is there + // Use it + loadExpressionPanel() + cy.get('#expression-preview-tabs li').contains('History').click() + cy.get('#expression-preview-tabs-history tr td') + .contains(uniqueExpression) + .parent() + .find('a') + .contains('Reuse') + .click() - // Expression must be populated in the textarea, after clicking on 'reuse' - cy.get('textarea.expression-preview-code').should( - 'have.value', - uniqueExpression - ) - }) + // Expression must be populated in the textarea, after clicking on 'reuse' + cy.get('textarea.expression-preview-code').should( + 'have.value', + uniqueExpression + ) + }) - it('Test the history, star', function () { - cy.loadAndVisitProject('food.mini') + it('Test the history, star', function () { + cy.loadAndVisitProject('food.mini') - // Cleanup step - // Because starred expression are shared across projects, see #3499 - // We need to un-star all previously starred expressions - loadExpressionPanel() - cy.get('#expression-preview-tabs li').contains('Starred').click() - cy.get( - '#expression-preview-tabs-starred .expression-preview-table-wrapper table' - ).then(($table) => { - if ($table.find('tr').length > 1) { - cy.get( - '#expression-preview-tabs-starred .expression-preview-table-wrapper table a' - ) - .contains('Remove') - .each(($btn) => { - cy.wrap($btn).click() - cy.get('.dialog-container:last-child button') - .contains('OK') - .click() - }) - } - }) - cy.get('.dialog-footer button').contains('Cancel').click() - // End cleanup + // Cleanup step + // Because starred expression are shared across projects, see #3499 + // We need to un-star all previously starred expressions + loadExpressionPanel() + cy.get('#expression-preview-tabs li').contains('Starred').click() + cy.get( + '#expression-preview-tabs-starred .expression-preview-table-wrapper table' + ).then(($table) => { + if ($table.find('tr').length > 1) { + cy.get( + '#expression-preview-tabs-starred .expression-preview-table-wrapper table a' + ) + .contains('Remove') + .each(($btn) => { + cy.wrap($btn).click() + cy.get('.dialog-container:last-child button') + .contains('OK') + .click() + }) + } + }) + cy.get('.dialog-footer button').contains('Cancel').click() + // End cleanup - // Load an expression - loadExpressionPanel() - const uniqueExpression = generateUniqueExpression() - typeExpression(uniqueExpression) - cy.get('.dialog-footer button').contains('OK').click() + // Load an expression + loadExpressionPanel() + const uniqueExpression = generateUniqueExpression() + typeExpression(uniqueExpression) + cy.get('.dialog-footer button').contains('OK').click() - // Star the expression - loadExpressionPanel() - cy.get('#expression-preview-tabs li').contains('History').click() - cy.get('.expression-preview-table-wrapper tr td') - .contains(uniqueExpression) - .parent() - .find('a.data-table-star-off') - .click() + // Star the expression + loadExpressionPanel() + cy.get('#expression-preview-tabs li').contains('History').click() + cy.get('.expression-preview-table-wrapper tr td') + .contains(uniqueExpression) + .parent() + .find('a.data-table-star-off') + .click() - // List starred expressions, en ensure the expression is listed - cy.get('#expression-preview-tabs li').contains('Starred').click() - cy.get( - '#expression-preview-tabs-starred .expression-preview-table-wrapper table' - ).contains(uniqueExpression) - }) + // List starred expressions, en ensure the expression is listed + cy.get('#expression-preview-tabs li').contains('Starred').click() + cy.get( + '#expression-preview-tabs-starred .expression-preview-table-wrapper table' + ).contains(uniqueExpression) + }) - it('Simple test to ensure the expression panel can be closed with OK', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('.dialog-footer button').contains('OK').click() - cy.get('.dialog-container').should('not.to.exist') - }) + it('Simple test to ensure the expression panel can be closed with OK', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('.dialog-footer button').contains('OK').click() + cy.get('.dialog-container').should('not.to.exist') + }) - it('Simple test to ensure the expression panel can be closed with Cancel', function () { - cy.loadAndVisitProject('food.mini') - loadExpressionPanel() - cy.get('.dialog-footer button').contains('Cancel').click() - cy.get('.dialog-container').should('not.to.exist') - }) + it('Simple test to ensure the expression panel can be closed with Cancel', function () { + cy.loadAndVisitProject('food.mini') + loadExpressionPanel() + cy.get('.dialog-footer button').contains('Cancel').click() + cy.get('.dialog-container').should('not.to.exist') + }) })