vitest-helpers
Version:
Helpers For Vue-test-utils
175 lines (174 loc) • 7.17 kB
JavaScript
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import { expect } from 'vitest';
var Helpers = /*#__PURE__*/function () {
function Helpers(wrapper) {
var expect$1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : expect;
_classCallCheck(this, Helpers);
this.wrapper = wrapper;
this.expect = expect$1;
}
_createClass(Helpers, [{
key: "see",
value: function see(text) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var wrap = selector ? this.wrapper.find(selector) : this.wrapper;
this.expect(wrap.html()).toContain(text);
}
}, {
key: "seeExact",
value: function seeExact(text) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var wrap = selector ? this.wrapper.find(selector) : this.wrapper;
this.expect(wrap.text()).toEqual(text);
}
}, {
key: "doNotSee",
value: function doNotSee(text) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var wrap = selector ? this.wrapper.find(selector) : this.wrapper;
this.expect(wrap.html()).not.toContain(text);
}
}, {
key: "doNotSeeExact",
value: function doNotSeeExact(text) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var wrap = selector ? this.wrapper.find(selector) : this.wrapper;
this.expect(wrap.text()).not.toEqual(text);
}
}, {
key: "hidden",
value: function hidden(selector) {
var node = this.find(selector);
this.expect(node.isVisible()).toBe(false);
}
}, {
key: "domHas",
value: function domHas(selector) {
this.expect(this.wrapper.find(selector).exists()).toBe(true);
}
}, {
key: "domHasNot",
value: function domHasNot(selector) {
this.expect(this.wrapper.find(selector).exists()).toBe(false);
}
}, {
key: "hasAClass",
value: function hasAClass(name) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
selector ? this.expect(this.find(selector).classes()).toContain(name) : this.expect(this.wrapper.classes()).toContain(name);
}
}, {
key: "doesNotHaveAClass",
value: function doesNotHaveAClass(name) {
var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
selector ? this.expect(this.find(selector).classes()).not.toContain(name) : this.expect(this.wrapper.classes()).not.toContain(name);
}
}, {
key: "hasAttribute",
value: function hasAttribute(attr, value, selector) {
this.expect(this.find(selector).attributes()[attr]).toBe(value);
}
}, {
key: "doesNotHaveAttribute",
value: function doesNotHaveAttribute(attr, value, selector) {
this.expect(this.find(selector).attributes()[attr]).not.toBe(value);
}
}, {
key: "find",
value: function find(selector) {
return this.wrapper.find(selector);
}
// input
}, {
key: "type",
value: function type(text, input) {
var event = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "input";
var node = this.find(input);
node.element.value = text;
node.trigger(event);
}
}, {
key: "inputValueIs",
value: function inputValueIs(text, selector) {
this.expect(this.find(selector).element.value).toBe(text);
}
}, {
key: "inputValueIsNot",
value: function inputValueIsNot(text, selector) {
this.expect(this.find(selector).element.value).not.toBe(text);
}
}, {
key: "isEmpty",
value: function isEmpty(selector) {
// this.inputValueIs('', selector)
this.expect(this.find(selector).element.value).toBe("");
}
// event
}, {
key: "click",
value: function click(selector) {
this.find(selector).trigger("click");
}
}, {
key: "emitted",
value: function emitted(event) {
this.expect(this.wrapper.emitted()[event]).toBeTruthy();
}
}, {
key: "emittedContains",
value: function emittedContains(event) {
var _this = this;
this.emitted(event);
var elements = this.wrapper.emitted()[event][0];
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
data[_key - 1] = arguments[_key];
}
data.forEach(function (element) {
if (Array.isArray(element)) {
var a = elements;
var b = element;
_this.checkArray(a, b);
} else if (element instanceof Object) {
var _a = elements;
var _b = element;
_this.checkObject(_a, _b);
} else {
var _a2 = elements;
var _b2 = element;
_this.checkData(_a2, _b2);
}
});
}
// Helpers
}, {
key: "checkArray",
value: function checkArray(elements, element) {
var _this2 = this;
return element.forEach(function (e) {
elements.forEach(function (arr) {
_this2.expect(arr).toContain(e);
});
});
}
}, {
key: "checkObject",
value: function checkObject(elements, element) {
var _this3 = this;
return elements.forEach(function (obj) {
_this3.expect(obj).toEqual(_this3.expect.objectContaining(element));
});
}
}, {
key: "checkData",
value: function checkData(elements, element) {
return this.expect(elements).toContain(element);
}
}]);
return Helpers;
}();
export { Helpers as default };