Skip to content

Commit

Permalink
test(featurelist): Cypress tests for featurelist.
Browse files Browse the repository at this point in the history
  • Loading branch information
bradh committed Jun 1, 2019
1 parent 8126df3 commit 9d97959
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 1 deletion.
135 changes: 135 additions & 0 deletions cypress/integration/smoke-tests/feature-grid.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
/// <reference types="Cypress" />
var os = require('../../support/selectors.js');

describe('Feature grid', function() {
before('Login', function() {
cy.login();
});

it('Shows data', function() {
// Upload a file
cy.get(os.Toolbar.addData.OPEN_FILE_BUTTON).click();
cy.get(os.importDataDialog.DIALOG).should('be.visible');
cy.upload('smoke-tests/load-data-file-kml/test-features.kmz');
cy.get(os.importDataDialog.NEXT_BUTTON).click();
cy.get(os.importKMLDialog.DIALOG).should('be.visible');
cy.get(os.importKMLDialog.LAYER_TITLE_INPUT).should('be.visible');
cy.get(os.importKMLDialog.OK_BUTTON).click();

// Load a layer
cy.get(os.layersDialog.Tabs.Layers.Tree.LAYER_4)
.should('contain', 'smoke-tests/load-data-file-kml/test-features.kmz Features (291)');

cy.get(os.layersDialog.Tabs.Layers.Tree.LAYER_4).rightClick();
cy.get(os.layersDialog.Tabs.Layers.Tree.Type.featureLayer.Local.contextMenu.menuOptions.SHOW_FEATURES).click();
cy.get('[title=\'smoke-tests/load-data-file-kml/test-features.kmz\']').should('be.visible');

// Check status bar
cy.get('[data-testid=\'featurelist\']').within(function() {
cy.get('[ng-if=\'ctrl.status\']').should('be.visible');
cy.get('[ng-if=\'ctrl.status\']').should('contain', '291 records');
});

cy.get('[data-testid=\'featurelist\']').within(function() {
cy.get('.js-source-grid').should('be.visible');
cy.get('.js-source-grid').within(function() {
cy.get('.slick-header').should('be.visible');
// Check columns
cy.get('.slick-header').within(function() {
cy.get('.slick-column-name').should('have.length', 14);
cy.get('.slick-column-name:empty').should('exist');
cy.get('.slick-column-name').contains('TIME');
cy.get('.slick-column-name').contains('MGRS');
cy.get('.slick-column-name').contains('LAT_DMS');
cy.get('.slick-column-name').contains('LON_DMS');
cy.get('.slick-column-name').contains('LAT');
cy.get('.slick-column-name').contains('LON');
cy.get('.slick-column-name').contains('LAT_DDM');
cy.get('.slick-column-name').contains('LON_DDM');
cy.get('.slick-column-name').contains('visibility');
cy.get('.slick-column-name').contains('scan_start');
cy.get('.slick-column-name').contains('frp_mw');
cy.get('.slick-column-name').contains('confidence');
cy.get('.slick-column-name').contains('ID');
});
});

// Check data
cy.get('.slick-viewport').should('be.visible');
cy.get('.slick-viewport').within(function() {
cy.get('.slick-cell').contains('2018-12-18 17:08:37Z');
});
});

// Check selection
cy.get('[data-testid=\'featurelist\'] .slick-row').first().click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (1 selected)');

// Check context menu works.
cy.get('[data-testid=\'featurelist\'] .slick-row').first().rightClick();
cy.get('[title=\'Exports data to a file\']').should('be.visible');

cy.get('[title=\'Deselects all items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records');

cy.get('[data-testid=\'featurelist\'] .slick-row').first().click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (1 selected)');

cy.get('[data-testid=\'featurelist\'] .slick-row').first().rightClick();
cy.get('[title=\'Inverts the selection\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (290 selected)');

cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Selects all items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (291 selected)');

cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Deselects all items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records');

cy.get('[data-testid=\'featurelist\'] .slick-grid').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (1 selected)');
cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Hides selected items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '290 records (1 hidden)');

cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Displays all items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records');

cy.get('[data-testid=\'featurelist\'] .slick-grid').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (1 selected)');
cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Hides unselected items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should(
'contain', '1 record (1 selected, 290 hidden)');
cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Displays all items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '291 records (1 selected)');

cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Removes selected items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '290 records');

cy.get('[data-testid=\'featurelist\'] .slick-grid').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '290 records (1 selected)');
cy.get('[data-testid=\'featurelist\'] .slick-grid').rightClick();
cy.get('[title=\'Removes the unselected items\']').click();
cy.get('[data-testid=\'featurelist\'] [ng-if=\'ctrl.status\']').should('contain', '1 record (1 selected)');

// Check Close button works
cy.get('[data-testid=\'featurelist\']').within(function() {
cy.get('[ng-click=\'ctrl.close()\']').should('be.visible');
cy.get('[ng-click=\'ctrl.close()\']').click();
});
cy.get('[title=\'smoke-tests/load-data-file-kml/test-features.kmz\']').should('not.exist');

// Clean up
cy.get(os.layersDialog.Tabs.Layers.Tree.LAYER_4)
.should('contain', 'smoke-tests/load-data-file-kml/test-features.kmz Features (1)');
cy.get(os.layersDialog.Tabs.Layers.Tree.LAYER_4).click();
cy.get(os.layersDialog.Tabs.Layers.Tree.Type.featureLayer.REMOVE_LAYER_BUTTON_WILDCARD).click();
cy.get(os.layersDialog.DIALOG).should('not.contain', 'smoke-tests/load-data-file-kml/test-features.kmz Features');
cy.get(os.Application.PAGE).type('v');
});
});
1 change: 1 addition & 0 deletions cypress/support/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -1414,6 +1414,7 @@ exports.layersDialog = {
REMOVE: '[title=\'Removes the layer\']',
RENAME: '[title=\'Rename the layer\']',
SHOW_DESCRIPTION: '[title=\'Gives details about the layer\']',
SHOW_FEATURES: '[title=\'Displays features in the layer\']',
EXPORT: '[title=\'Exports data from this layer\']',
ADD_TO_TRACK: '[title=\'Adds selected features (or all features if none are selected) ' +
'to an existing track.\']',
Expand Down
2 changes: 1 addition & 1 deletion views/windows/featurelist.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="d-flex flex-column flex-fill">
<div class="d-flex flex-column flex-fill" data-testid="featurelist">
<div class="d-flex flex-column flex-fill modal-body">
<div class="d-flex flex-row align-items-center mb-2">
<div class="custom-control custom-checkbox mr-4"
Expand Down

0 comments on commit 9d97959

Please sign in to comment.