Hardy
Hardy copied to clipboard
False negative on font family attribute
Scenarios involving font-family checks do not seem to work as expected.
This scenario
Scenario: billboard-top should use AntennaExtraLight Given I visit "http://global-ux.dev/prototypes/homepage/first" Then ".billboard-top" should have "font-family" of "AntennaExtraLight, AntennaRE, Antenna, 'Helvetica Neue', Helvetica, Arial, sans-serif"
Yields
(::) failed steps (::)
".billboard-top" should have font-family of AntennaExtraLight, AntennaRE, Antenna, 'Helvetica Neue', Helvetica, Arial, sans-serif, measured: AntennaExtraLight, AntennaRE, Antenna, 'Helvetica Neue', Helvetica, Arial, sans-serif
Hardy v1.1.0
I wrote a couple of custom step definitions to help with this:
Contains
this.Then(/^"([^"]*)" should have "([^"]*)" that contains "([^"]*)"$/, function(selector, property, value, callback) {
var elementSelector = require( process.env['BINARYPATH'] + 'features/support/selectors.js')(selector);
var message = '"' + property + '" should contain ' + '"' + value + '"';
this.getCssProperty(elementSelector, property, function(err, actualValue) {
if (err) {
if (typeof err === "object") {
err = JSON.stringify(err);
}
return callback.fail(err);
}
var substringLocation = actualValue.indexOf(value);
try {
assert.notEqual(-1, substringLocation, message);
} catch (e) {
return callback.fail(e.message);
}
callback();
});
});
Starts with
this.Then(/^"([^"]*)" should have "([^"]*)" that starts with "([^"]*)"$/, function(selector, property, value, callback) {
var elementSelector = require( process.env['BINARYPATH'] + 'features/support/selectors.js')(selector);
var message = '"' + property + '" should start with ' + '"' + value + '"';
this.getCssProperty(elementSelector, property, function(err, actualValue) {
if (err) {
if (typeof err === "object") {
err = JSON.stringify(err);
}
return callback.fail(err);
}
var substringLocation = actualValue.indexOf(value);
try {
assert.equal(0, substringLocation, message);
} catch (e) {
return callback.fail(e.message);
}
callback();
});
});