UNPKG

@teambit/tester

Version:
212 lines (209 loc) • 6.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.TesterUI = void 0; function _react() { const data = _interopRequireDefault(require("react")); _react = function () { return data; }; return data; } function _ui() { const data = require("@teambit/ui"); _ui = function () { return data; }; return data; } function _harmony() { const data = require("@teambit/harmony"); _harmony = function () { return data; }; return data; } function _component() { const data = require("@teambit/component"); _component = function () { return data; }; return data; } function _defenderUi() { const data = require("@teambit/defender.ui.test-compare"); _defenderUi = function () { return data; }; return data; } function _componentCompare() { const data = require("@teambit/component-compare"); _componentCompare = function () { return data; }; return data; } function _defenderUi2() { const data = require("@teambit/defender.ui.test-compare-section"); _defenderUi2 = function () { return data; }; return data; } function _docs() { const data = require("@teambit/docs"); _docs = function () { return data; }; return data; } function _client() { const data = require("@apollo/client"); _client = function () { return data; }; return data; } function _designUi() { const data = require("@teambit/design.ui.pill-label"); _designUi = function () { return data; }; return data; } function _designUi2() { const data = require("@teambit/design.ui.tooltip"); _designUi2 = function () { return data; }; return data; } function _evangelistElements() { const data = require("@teambit/evangelist.elements.icon"); _evangelistElements = function () { return data; }; return data; } function _baseReactNavigation() { const data = require("@teambit/base-react.navigation.link"); _baseReactNavigation = function () { return data; }; return data; } function _tests() { const data = require("./tests.section"); _tests = function () { return data; }; return data; } function _tester() { const data = require("./tester.aspect"); _tester = function () { return data; }; return data; } function _coverageLabelModule() { const data = _interopRequireDefault(require("./coverage-label.module.scss")); _coverageLabelModule = function () { return data; }; return data; } function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } const GET_COMPONENT = (0, _client().gql)` query ($id: String!) { getHost { id # for GQL caching getTests(id: $id) { loading testsResults { coverage { total { lines { covered total pct } } } } } } } `; class TesterUI { constructor(component, emptyStateSlot) { this.component = component; this.emptyStateSlot = emptyStateSlot; _defineProperty(this, "stageKey", void 0); } /** * register a new tester empty state. this allows to register a different empty state from each environment for example. */ registerEmptyState(emptyStateComponent) { this.emptyStateSlot.register(emptyStateComponent); return this; } getTesterCompare() { return /*#__PURE__*/_react().default.createElement(_defenderUi().CompareTests, { emptyState: this.emptyStateSlot }); } static async provider([component, componentCompare, docs], config, [emptyStateSlot]) { const testerUi = new TesterUI(component, emptyStateSlot); const section = new (_tests().TestsSection)(emptyStateSlot); const testerCompareSection = new (_defenderUi2().TestCompareSection)(testerUi); component.registerRoute(section.route); component.registerNavigation(section.navigationLink, section.order); componentCompare.registerNavigation(testerCompareSection); componentCompare.registerRoutes([testerCompareSection.route]); docs.registerTitleBadge({ component: function badge({ legacyComponentModel }) { const { data } = (0, _client().useQuery)(GET_COMPONENT, { variables: { id: legacyComponentModel.id.toString() } }); if (!data || !data.getHost || !data.getHost.getTests) return null; const total = data.getHost.getTests.testsResults?.coverage?.total; if (!total) return null; return /*#__PURE__*/_react().default.createElement(_designUi2().Tooltip, { className: _coverageLabelModule().default.coverageTooltip, placement: "top", content: /*#__PURE__*/_react().default.createElement("div", { className: _coverageLabelModule().default.coverageTooltipContent }, total.lines.covered, "/", total.lines.total, " lines covered") }, /*#__PURE__*/_react().default.createElement(_baseReactNavigation().Link, { href: `~tests${document.location.search}`, className: _coverageLabelModule().default.link }, /*#__PURE__*/_react().default.createElement(_designUi().PillLabel, { className: _coverageLabelModule().default.label }, /*#__PURE__*/_react().default.createElement("span", null, total.lines.pct, "%"), /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, { of: "scan-component" })))); }, weight: 30 }); return testerUi; } } exports.TesterUI = TesterUI; _defineProperty(TesterUI, "dependencies", [_component().ComponentAspect, _componentCompare().ComponentCompareAspect, _docs().DocsAspect]); _defineProperty(TesterUI, "runtime", _ui().UIRuntime); _defineProperty(TesterUI, "slots", [_harmony().Slot.withType()]); var _default = exports.default = TesterUI; _tester().TesterAspect.addRuntime(TesterUI); //# sourceMappingURL=tester.ui.runtime.js.map