quixote
Version:
CSS unit and integration testing
40 lines (29 loc) • 906 B
JavaScript
// Copyright (c) 2016-2017 Titanium I.T. LLC. All rights reserved. For license, see "README" or "LICENSE" file.
;
var ensure = require("../util/ensure.js");
var Value = require("./value.js");
var RENDERED = "rendered";
var NOT_RENDERED = "not rendered";
var Me = module.exports = function RenderState(state) {
ensure.signature(arguments, [ String ]);
this._state = state;
};
Value.extend(Me);
Me.rendered = function rendered() {
return new Me(RENDERED);
};
Me.notRendered = function notRendered() {
return new Me(NOT_RENDERED);
};
Me.prototype.compatibility = function compatibility() {
return [ Me ];
};
Me.prototype.diff = Value.safe(function diff(expected) {
var thisState = this._state;
var expectedState = expected._state;
if (thisState === expectedState) return "";
else return this.toString();
});
Me.prototype.toString = function toString() {
return this._state;
};