Skip to content

Commit

Permalink
Merge pull request #240 from gemini-testing/assertView/ignoreElements
Browse files Browse the repository at this point in the history
 feat: add 'ignoreElements' options to 'assertView' command
  • Loading branch information
eGavr committed Mar 13, 2018
2 parents fe70c48 + bd10710 commit 7b7ea71
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 6 deletions.
7 changes: 5 additions & 2 deletions lib/browser/commands/assert-view/index.js
@@ -1,6 +1,7 @@
'use strict';

const fs = require('fs');
const _ = require('lodash');
const {Image, temp, ScreenShooter} = require('gemini-core');
const {getCaptureProcessors} = require('./capture-processors');
const {getTestContext} = require('../../../utils/mocha');
Expand All @@ -13,15 +14,17 @@ module.exports = (browser) => {

const {handleNoRefImage, handleImageDiff} = getCaptureProcessors();

session.addCommand('assertView', (state, selectors) => {
session.addCommand('assertView', (state, selectors, opts = {}) => {
opts = _.defaults(opts, {ignoreElements: []});

const test = getTestContext(session.executionContext);
const refPath = config.getScreenshotPath(test, state);
const tempOpts = RuntimeConfig.getInstance().tempOpts;

temp.attach(tempOpts);
const currPath = temp.path(Object.assign(tempOpts, {suffix: '.png'}));

return browser.prepareScreenshot([].concat(selectors))
return browser.prepareScreenshot([].concat(selectors), {ignoreSelectors: [].concat(opts.ignoreElements)})
.then((page) => {
return screenShooter.capture(page)
.then((currImage) => currImage.save(currPath))
Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -38,7 +38,7 @@
"commander": "^2.12.2",
"fs-extra": "^5.0.0",
"gemini-configparser": "^1.0.0",
"gemini-core": "^2.8.1",
"gemini-core": "^2.9.0",
"glob-extra": "^3.0.0",
"inherit": "^2.2.2",
"lodash": "^4.17.4",
Expand Down
21 changes: 21 additions & 0 deletions test/lib/browser/commands/assert-view/index.js
Expand Up @@ -67,6 +67,27 @@ describe('assertView command', () => {
return browser.publicAPI.assertView('plain', ['.selector1', '.selector2'])
.then(() => assert.calledOnceWith(browser.prepareScreenshot, ['.selector1', '.selector2']));
});

it('should handle ignore elements option passed as an array', () => {
const browser = stubBrowser_();

return browser.publicAPI.assertView(null, null, {ignoreElements: ['foo', 'bar']})
.then(() => assert.calledOnceWith(browser.prepareScreenshot, sinon.match.any, {ignoreSelectors: ['foo', 'bar']}));
});

it('should handle ignore elements option passed as a string', () => {
const browser = stubBrowser_();

return browser.publicAPI.assertView(null, null, {ignoreElements: 'foo bar'})
.then(() => assert.calledOnceWith(browser.prepareScreenshot, sinon.match.any, {ignoreSelectors: ['foo bar']}));
});

it('should handle cases when ignore elements option is not passed', () => {
const browser = stubBrowser_();

return browser.publicAPI.assertView()
.then(() => assert.calledOnceWith(browser.prepareScreenshot, sinon.match.any, {ignoreSelectors: []}));
});
});

describe('take screenshot', () => {
Expand Down

0 comments on commit 7b7ea71

Please sign in to comment.