@atlaskit/smart-card 22.1.0 → 22.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/cjs/__tests_external__/index.js +53 -0
- package/dist/cjs/__tests_external__/page-objects/BaseCard.js +115 -0
- package/dist/cjs/__tests_external__/page-objects/BlockCard.js +43 -0
- package/dist/cjs/__tests_external__/page-objects/EmbedCard.js +43 -0
- package/dist/cjs/__tests_external__/page-objects/InlineCard.js +43 -0
- package/dist/cjs/__tests_external__/test-cases/card.js +27 -0
- package/dist/cjs/__tests_external__/test-cases/embed.js +27 -0
- package/dist/cjs/__tests_external__/test-cases/inline.js +27 -0
- package/dist/cjs/__tests_external__/test-cases/types.js +5 -0
- package/dist/cjs/state/hooks/usePrefetch.js +26 -14
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/CardWithUrl/loader.js +10 -10
- package/dist/cjs/view/InlineCard/IconAndTitleLayout/styled.js +2 -2
- package/dist/es2019/__tests_external__/index.js +6 -0
- package/dist/es2019/__tests_external__/page-objects/BaseCard.js +61 -0
- package/dist/es2019/__tests_external__/page-objects/BlockCard.js +8 -0
- package/dist/es2019/__tests_external__/page-objects/EmbedCard.js +8 -0
- package/dist/es2019/__tests_external__/page-objects/InlineCard.js +8 -0
- package/dist/es2019/__tests_external__/test-cases/card.js +14 -0
- package/dist/es2019/__tests_external__/test-cases/embed.js +14 -0
- package/dist/es2019/__tests_external__/test-cases/inline.js +14 -0
- package/dist/es2019/__tests_external__/test-cases/types.js +1 -0
- package/dist/es2019/state/hooks/usePrefetch.js +9 -4
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/CardWithUrl/loader.js +10 -10
- package/dist/es2019/view/InlineCard/IconAndTitleLayout/styled.js +0 -2
- package/dist/esm/__tests_external__/index.js +6 -0
- package/dist/esm/__tests_external__/page-objects/BaseCard.js +101 -0
- package/dist/esm/__tests_external__/page-objects/BlockCard.js +28 -0
- package/dist/esm/__tests_external__/page-objects/EmbedCard.js +28 -0
- package/dist/esm/__tests_external__/page-objects/InlineCard.js +28 -0
- package/dist/esm/__tests_external__/test-cases/card.js +16 -0
- package/dist/esm/__tests_external__/test-cases/embed.js +16 -0
- package/dist/esm/__tests_external__/test-cases/inline.js +16 -0
- package/dist/esm/__tests_external__/test-cases/types.js +1 -0
- package/dist/esm/state/hooks/usePrefetch.js +26 -14
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/CardWithUrl/loader.js +10 -10
- package/dist/esm/view/InlineCard/IconAndTitleLayout/styled.js +2 -2
- package/dist/types/view/Card/index.d.ts +1 -1
- package/dist/types/view/HoverCard/index.d.ts +1 -1
- package/package.json +22 -22
- package/report.api.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 22.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`9a0c1c39d27`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9a0c1c39d27) - Rethrow errors from child component of smart-card so all non API errors will be handed to parent of smart-card
|
|
8
|
+
|
|
9
|
+
## 22.1.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`46059beebbf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/46059beebbf) - - include **tests_external** in build
|
|
14
|
+
- replace usage of @local-cypress package with @cypress
|
|
15
|
+
- bump @cypress from ^6.4.0 to ^7.7.0
|
|
16
|
+
- import cypress types into @atlaskit/in-product-testing tsconfig
|
|
17
|
+
|
|
18
|
+
## 22.1.1
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- [`9c7cc4139ec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9c7cc4139ec) - Partially remove Lozenge CSS override which conflicts with updated Lozenge styling.
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
|
|
3
25
|
## 22.1.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BlockCardPageObject", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _BlockCard.BlockCardPageObject;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "EmbedCardPageObject", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _EmbedCard.EmbedCardPageObject;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "InlineCardPageObject", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _InlineCard.InlineCardPageObject;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "blockSmartLinkRendersTestCase", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _card.blockSmartLinkRendersTestCase;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "embedSmartLinkRendersTestCase", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _embed.embedSmartLinkRendersTestCase;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "inlineSmartLinkRendersTestCase", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _inline.inlineSmartLinkRendersTestCase;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
var _InlineCard = require("./page-objects/InlineCard");
|
|
44
|
+
|
|
45
|
+
var _BlockCard = require("./page-objects/BlockCard");
|
|
46
|
+
|
|
47
|
+
var _EmbedCard = require("./page-objects/EmbedCard");
|
|
48
|
+
|
|
49
|
+
var _inline = require("./test-cases/inline");
|
|
50
|
+
|
|
51
|
+
var _card = require("./test-cases/card");
|
|
52
|
+
|
|
53
|
+
var _embed = require("./test-cases/embed");
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.BaseCardPageObject = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
22
|
+
var _inProductTesting = require("@atlaskit/in-product-testing");
|
|
23
|
+
|
|
24
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
25
|
+
|
|
26
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
27
|
+
|
|
28
|
+
var BaseCardPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
|
|
29
|
+
(0, _inherits2.default)(BaseCardPageObject, _InProductTestPageObj);
|
|
30
|
+
|
|
31
|
+
var _super = _createSuper(BaseCardPageObject);
|
|
32
|
+
|
|
33
|
+
function BaseCardPageObject(cy, appearance) {
|
|
34
|
+
var _this;
|
|
35
|
+
|
|
36
|
+
(0, _classCallCheck2.default)(this, BaseCardPageObject);
|
|
37
|
+
_this = _super.call(this, cy);
|
|
38
|
+
_this.cy = cy;
|
|
39
|
+
_this.appearance = appearance;
|
|
40
|
+
return _this;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(0, _createClass2.default)(BaseCardPageObject, [{
|
|
44
|
+
key: "_toSelector",
|
|
45
|
+
value: function _toSelector(appearance, status) {
|
|
46
|
+
var viewSelector = status.replace(/_/g, '-');
|
|
47
|
+
return this.toTestId("".concat(appearance, "-card-").concat(viewSelector, "-view"));
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "expectCardReady",
|
|
51
|
+
value: function expectCardReady() {
|
|
52
|
+
var _this2 = this;
|
|
53
|
+
|
|
54
|
+
var numOfCards = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
55
|
+
var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'resolved';
|
|
56
|
+
|
|
57
|
+
var selector = this._toSelector(this.appearance, status);
|
|
58
|
+
|
|
59
|
+
return this.cy // NOTE: `timeout` used since Smart Links rely on a network response.
|
|
60
|
+
.get(selector, {
|
|
61
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
62
|
+
}).should('have.length', numOfCards).each(function (element) {
|
|
63
|
+
_this2.cy.wrap(element) // NOTE: `be.visible` is used to ensure the file is still visible
|
|
64
|
+
// whilst it is being uploaded.
|
|
65
|
+
.should('be.visible');
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
key: "expectCardNotExists",
|
|
70
|
+
value: function expectCardNotExists() {
|
|
71
|
+
var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'resolved';
|
|
72
|
+
|
|
73
|
+
var selector = this._toSelector(this.appearance, status);
|
|
74
|
+
|
|
75
|
+
return this.cy.get(selector).should('not.exist');
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
key: "findCardNth",
|
|
79
|
+
value: function findCardNth() {
|
|
80
|
+
var nth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
81
|
+
var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'resolved';
|
|
82
|
+
|
|
83
|
+
var selector = this._toSelector(this.appearance, status);
|
|
84
|
+
|
|
85
|
+
return this.cy // NOTE: `timeout` used since Smart Links rely on a network response.
|
|
86
|
+
.get(selector, {
|
|
87
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
88
|
+
}).should('have.length.at.least', nth).should('be.visible').eq(nth - 1);
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "assertHrefRendered",
|
|
92
|
+
value: function assertHrefRendered(url) {
|
|
93
|
+
return this.cy.get("a[href=\"".concat(url, "\"]"), {
|
|
94
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
95
|
+
}).should('be.visible');
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
key: "assertHrefNotRendered",
|
|
99
|
+
value: function assertHrefNotRendered(url) {
|
|
100
|
+
return this.cy.get("a[href=\"".concat(url, "\"]"), {
|
|
101
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
102
|
+
}).should('not.exist');
|
|
103
|
+
}
|
|
104
|
+
}, {
|
|
105
|
+
key: "click",
|
|
106
|
+
value: function click() {
|
|
107
|
+
var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'resolved';
|
|
108
|
+
return this.findCardNth(1, status).click();
|
|
109
|
+
}
|
|
110
|
+
}]);
|
|
111
|
+
return BaseCardPageObject;
|
|
112
|
+
}(_inProductTesting.InProductTestPageObject);
|
|
113
|
+
|
|
114
|
+
exports.BaseCardPageObject = BaseCardPageObject;
|
|
115
|
+
(0, _defineProperty2.default)(BaseCardPageObject, "CARD_TIMEOUT", 15000);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.BlockCardPageObject = void 0;
|
|
9
|
+
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _BaseCard = require("./BaseCard");
|
|
21
|
+
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
|
+
|
|
24
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
25
|
+
|
|
26
|
+
var BlockCardPageObject = /*#__PURE__*/function (_BaseCardPageObject) {
|
|
27
|
+
(0, _inherits2.default)(BlockCardPageObject, _BaseCardPageObject);
|
|
28
|
+
|
|
29
|
+
var _super = _createSuper(BlockCardPageObject);
|
|
30
|
+
|
|
31
|
+
function BlockCardPageObject(cy) {
|
|
32
|
+
var _this;
|
|
33
|
+
|
|
34
|
+
(0, _classCallCheck2.default)(this, BlockCardPageObject);
|
|
35
|
+
_this = _super.call(this, cy, 'block');
|
|
36
|
+
_this.cy = cy;
|
|
37
|
+
return _this;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return (0, _createClass2.default)(BlockCardPageObject);
|
|
41
|
+
}(_BaseCard.BaseCardPageObject);
|
|
42
|
+
|
|
43
|
+
exports.BlockCardPageObject = BlockCardPageObject;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.EmbedCardPageObject = void 0;
|
|
9
|
+
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _BaseCard = require("./BaseCard");
|
|
21
|
+
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
|
+
|
|
24
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
25
|
+
|
|
26
|
+
var EmbedCardPageObject = /*#__PURE__*/function (_BaseCardPageObject) {
|
|
27
|
+
(0, _inherits2.default)(EmbedCardPageObject, _BaseCardPageObject);
|
|
28
|
+
|
|
29
|
+
var _super = _createSuper(EmbedCardPageObject);
|
|
30
|
+
|
|
31
|
+
function EmbedCardPageObject(cy) {
|
|
32
|
+
var _this;
|
|
33
|
+
|
|
34
|
+
(0, _classCallCheck2.default)(this, EmbedCardPageObject);
|
|
35
|
+
_this = _super.call(this, cy, 'embed');
|
|
36
|
+
_this.cy = cy;
|
|
37
|
+
return _this;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return (0, _createClass2.default)(EmbedCardPageObject);
|
|
41
|
+
}(_BaseCard.BaseCardPageObject);
|
|
42
|
+
|
|
43
|
+
exports.EmbedCardPageObject = EmbedCardPageObject;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.InlineCardPageObject = void 0;
|
|
9
|
+
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _BaseCard = require("./BaseCard");
|
|
21
|
+
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
|
+
|
|
24
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
25
|
+
|
|
26
|
+
var InlineCardPageObject = /*#__PURE__*/function (_BaseCardPageObject) {
|
|
27
|
+
(0, _inherits2.default)(InlineCardPageObject, _BaseCardPageObject);
|
|
28
|
+
|
|
29
|
+
var _super = _createSuper(InlineCardPageObject);
|
|
30
|
+
|
|
31
|
+
function InlineCardPageObject(cy) {
|
|
32
|
+
var _this;
|
|
33
|
+
|
|
34
|
+
(0, _classCallCheck2.default)(this, InlineCardPageObject);
|
|
35
|
+
_this = _super.call(this, cy, 'inline');
|
|
36
|
+
_this.cy = cy;
|
|
37
|
+
return _this;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return (0, _createClass2.default)(InlineCardPageObject);
|
|
41
|
+
}(_BaseCard.BaseCardPageObject);
|
|
42
|
+
|
|
43
|
+
exports.InlineCardPageObject = InlineCardPageObject;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.blockSmartLinkRendersTestCase = void 0;
|
|
7
|
+
|
|
8
|
+
var _inProductTesting = require("@atlaskit/in-product-testing");
|
|
9
|
+
|
|
10
|
+
var _BlockCard = require("../page-objects/BlockCard");
|
|
11
|
+
|
|
12
|
+
var blockSmartLinkRendersTestCase = function blockSmartLinkRendersTestCase(_ref) {
|
|
13
|
+
var url = _ref.url,
|
|
14
|
+
_ref$status = _ref.status,
|
|
15
|
+
status = _ref$status === void 0 ? 'resolved' : _ref$status;
|
|
16
|
+
return new _inProductTesting.InProductTestCase({
|
|
17
|
+
title: 'Block Smart Link is visible in the resolved state',
|
|
18
|
+
id: 'block-smart-link-resolved',
|
|
19
|
+
assertions: function assertions(cy) {
|
|
20
|
+
var blockCard = new _BlockCard.BlockCardPageObject(cy);
|
|
21
|
+
blockCard.assertHrefRendered(url);
|
|
22
|
+
blockCard.expectCardReady(1, status);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.blockSmartLinkRendersTestCase = blockSmartLinkRendersTestCase;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.embedSmartLinkRendersTestCase = void 0;
|
|
7
|
+
|
|
8
|
+
var _inProductTesting = require("@atlaskit/in-product-testing");
|
|
9
|
+
|
|
10
|
+
var _EmbedCard = require("../page-objects/EmbedCard");
|
|
11
|
+
|
|
12
|
+
var embedSmartLinkRendersTestCase = function embedSmartLinkRendersTestCase(_ref) {
|
|
13
|
+
var url = _ref.url,
|
|
14
|
+
_ref$status = _ref.status,
|
|
15
|
+
status = _ref$status === void 0 ? 'resolved' : _ref$status;
|
|
16
|
+
return new _inProductTesting.InProductTestCase({
|
|
17
|
+
title: 'Embed Smart Link is visible in the resolved state',
|
|
18
|
+
id: 'embed-smart-link-resolved',
|
|
19
|
+
assertions: function assertions(cy) {
|
|
20
|
+
var embedCard = new _EmbedCard.EmbedCardPageObject(cy);
|
|
21
|
+
embedCard.assertHrefRendered(url);
|
|
22
|
+
embedCard.expectCardReady(1, status);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.embedSmartLinkRendersTestCase = embedSmartLinkRendersTestCase;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.inlineSmartLinkRendersTestCase = void 0;
|
|
7
|
+
|
|
8
|
+
var _inProductTesting = require("@atlaskit/in-product-testing");
|
|
9
|
+
|
|
10
|
+
var _InlineCard = require("../page-objects/InlineCard");
|
|
11
|
+
|
|
12
|
+
var inlineSmartLinkRendersTestCase = function inlineSmartLinkRendersTestCase(_ref) {
|
|
13
|
+
var url = _ref.url,
|
|
14
|
+
_ref$status = _ref.status,
|
|
15
|
+
status = _ref$status === void 0 ? 'resolved' : _ref$status;
|
|
16
|
+
return new _inProductTesting.InProductTestCase({
|
|
17
|
+
title: 'Inline Smart Link is visible in the resolved state',
|
|
18
|
+
id: 'inline-smart-link-resolved',
|
|
19
|
+
assertions: function assertions(cy) {
|
|
20
|
+
var inlineCard = new _InlineCard.InlineCardPageObject(cy);
|
|
21
|
+
inlineCard.assertHrefRendered(url);
|
|
22
|
+
inlineCard.expectCardReady(1, status);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.inlineSmartLinkRendersTestCase = inlineSmartLinkRendersTestCase;
|
|
@@ -23,15 +23,27 @@ function usePrefetch(url) {
|
|
|
23
23
|
prefetchStore = _useSmartLinkContext.prefetchStore,
|
|
24
24
|
connections = _useSmartLinkContext.connections;
|
|
25
25
|
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var _ref = store || {},
|
|
27
|
+
dispatch = _ref.dispatch,
|
|
28
|
+
getState = _ref.getState;
|
|
29
|
+
|
|
30
|
+
var _ref2 = connections || {},
|
|
31
|
+
client = _ref2.client;
|
|
32
|
+
|
|
29
33
|
return (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
30
34
|
var isPrefetching, isFetching, needsPrefetch, response;
|
|
31
35
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
32
36
|
while (1) {
|
|
33
37
|
switch (_context.prev = _context.next) {
|
|
34
38
|
case 0:
|
|
39
|
+
if (!(!store || !prefetchStore || !connections)) {
|
|
40
|
+
_context.next = 2;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return _context.abrupt("return");
|
|
45
|
+
|
|
46
|
+
case 2:
|
|
35
47
|
// If the link is already being prefetched, the prefetch store
|
|
36
48
|
// should have a flag set against the URL. The prefetch store is purposefully
|
|
37
49
|
// separate from the UI in order to ensure no rendering takes place;
|
|
@@ -45,7 +57,7 @@ function usePrefetch(url) {
|
|
|
45
57
|
needsPrefetch = !isPrefetching && !isFetching;
|
|
46
58
|
|
|
47
59
|
if (!needsPrefetch) {
|
|
48
|
-
_context.next =
|
|
60
|
+
_context.next = 16;
|
|
49
61
|
break;
|
|
50
62
|
}
|
|
51
63
|
|
|
@@ -57,11 +69,11 @@ function usePrefetch(url) {
|
|
|
57
69
|
// requests by domain (as usual) to ensure we minimize the amount of connections
|
|
58
70
|
// we create between browser -> ORS when making network requests.
|
|
59
71
|
|
|
60
|
-
_context.prev =
|
|
61
|
-
_context.next =
|
|
72
|
+
_context.prev = 7;
|
|
73
|
+
_context.next = 10;
|
|
62
74
|
return client.prefetchData(url);
|
|
63
75
|
|
|
64
|
-
case
|
|
76
|
+
case 10:
|
|
65
77
|
response = _context.sent;
|
|
66
78
|
|
|
67
79
|
// Once the data comes back, we put the link in the `resolved` status. This ensures
|
|
@@ -80,18 +92,18 @@ function usePrefetch(url) {
|
|
|
80
92
|
}, undefined, undefined, 'resolved'));
|
|
81
93
|
}
|
|
82
94
|
|
|
83
|
-
_context.next =
|
|
95
|
+
_context.next = 16;
|
|
84
96
|
break;
|
|
85
97
|
|
|
86
|
-
case 12:
|
|
87
|
-
_context.prev = 12;
|
|
88
|
-
_context.t0 = _context["catch"](5);
|
|
89
|
-
|
|
90
98
|
case 14:
|
|
99
|
+
_context.prev = 14;
|
|
100
|
+
_context.t0 = _context["catch"](7);
|
|
101
|
+
|
|
102
|
+
case 16:
|
|
91
103
|
case "end":
|
|
92
104
|
return _context.stop();
|
|
93
105
|
}
|
|
94
106
|
}
|
|
95
|
-
}, _callee, null, [[
|
|
96
|
-
})), [prefetchStore, url, getState, client, dispatch]);
|
|
107
|
+
}, _callee, null, [[7, 14]]);
|
|
108
|
+
})), [store, prefetchStore, connections, url, getState, client, dispatch]);
|
|
97
109
|
}
|
package/dist/cjs/version.json
CHANGED
|
@@ -83,16 +83,12 @@ function CardWithURLRenderer(props) {
|
|
|
83
83
|
}, [appearance, createAnalyticsEvent]);
|
|
84
84
|
var analytics = (0, _analytics2.useSmartLinkAnalytics)(url !== null && url !== void 0 ? url : '', dispatchAnalytics, id);
|
|
85
85
|
var logError = (0, _react.useCallback)(function (error, info) {
|
|
86
|
-
var componentStack = info.componentStack; // NB: APIErrors are thrown in response to Object Resolver Service.
|
|
87
|
-
// In these cases, control is handed back to the Editor. We do not
|
|
86
|
+
var componentStack = info.componentStack; // NB: APIErrors are thrown in response to Object Resolver Service. We do not
|
|
88
87
|
// fire an event for these, as they do not cover failed UI render events.
|
|
88
|
+
// The rest of the errors caught here are unexpected, and correlate
|
|
89
|
+
// to the reliability of the smart-card front-end components.
|
|
89
90
|
|
|
90
|
-
if (error.name
|
|
91
|
-
throw error;
|
|
92
|
-
} // NB: the rest of the errors caught here are unexpected, and correlate
|
|
93
|
-
// to the reliability of the smart-card front-end components. We instrument
|
|
94
|
-
// these in order to measure our front-end reliability.
|
|
95
|
-
else {
|
|
91
|
+
if (error.name !== 'APIError') {
|
|
96
92
|
var errorInfo = {
|
|
97
93
|
componentStack: componentStack
|
|
98
94
|
};
|
|
@@ -102,7 +98,11 @@ function CardWithURLRenderer(props) {
|
|
|
102
98
|
error: error,
|
|
103
99
|
errorInfo: errorInfo
|
|
104
100
|
});
|
|
105
|
-
}
|
|
101
|
+
} // Rethrow to hand control to the consumer of Smart-card.
|
|
102
|
+
// In the case of editor this allows the Smart Link to fallback to a blue link.
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
throw error;
|
|
106
106
|
}, [analytics.ui, appearance, id]);
|
|
107
107
|
|
|
108
108
|
if (!url) {
|
|
@@ -140,5 +140,5 @@ function CardWithURLRenderer(props) {
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
var ErrorFallback = function ErrorFallback() {
|
|
143
|
-
return
|
|
143
|
+
return null;
|
|
144
144
|
};
|
|
@@ -43,12 +43,12 @@ var IconTitleWrapper = _styled.default.span(_templateObject3 || (_templateObject
|
|
|
43
43
|
|
|
44
44
|
exports.IconTitleWrapper = IconTitleWrapper;
|
|
45
45
|
|
|
46
|
-
var LozengeWrapper = _styled.default.span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n vertical-align: 1px;\n & > span {\n margin-left: 4px;\n
|
|
46
|
+
var LozengeWrapper = _styled.default.span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n vertical-align: 1px;\n & > span {\n margin-left: 4px;\n }\n"]))); // TODO: Replace overrides with proper AtlasKit solution.
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
exports.LozengeWrapper = LozengeWrapper;
|
|
50
50
|
|
|
51
|
-
var LozengeBlockWrapper = _styled.default.span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n & > span {\n margin-left: 4px;\n
|
|
51
|
+
var LozengeBlockWrapper = _styled.default.span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n & > span {\n margin-left: 4px;\n }\n"])));
|
|
52
52
|
|
|
53
53
|
exports.LozengeBlockWrapper = LozengeBlockWrapper;
|
|
54
54
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { InlineCardPageObject } from './page-objects/InlineCard';
|
|
2
|
+
export { BlockCardPageObject } from './page-objects/BlockCard';
|
|
3
|
+
export { EmbedCardPageObject } from './page-objects/EmbedCard';
|
|
4
|
+
export { inlineSmartLinkRendersTestCase } from './test-cases/inline';
|
|
5
|
+
export { blockSmartLinkRendersTestCase } from './test-cases/card';
|
|
6
|
+
export { embedSmartLinkRendersTestCase } from './test-cases/embed';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import { InProductTestPageObject } from '@atlaskit/in-product-testing';
|
|
3
|
+
export class BaseCardPageObject extends InProductTestPageObject {
|
|
4
|
+
constructor(cy, appearance) {
|
|
5
|
+
super(cy);
|
|
6
|
+
this.cy = cy;
|
|
7
|
+
this.appearance = appearance;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_toSelector(appearance, status) {
|
|
11
|
+
const viewSelector = status.replace(/_/g, '-');
|
|
12
|
+
return this.toTestId(`${appearance}-card-${viewSelector}-view`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
expectCardReady(numOfCards = 1, status = 'resolved') {
|
|
16
|
+
const selector = this._toSelector(this.appearance, status);
|
|
17
|
+
|
|
18
|
+
return this.cy // NOTE: `timeout` used since Smart Links rely on a network response.
|
|
19
|
+
.get(selector, {
|
|
20
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
21
|
+
}).should('have.length', numOfCards).each(element => {
|
|
22
|
+
this.cy.wrap(element) // NOTE: `be.visible` is used to ensure the file is still visible
|
|
23
|
+
// whilst it is being uploaded.
|
|
24
|
+
.should('be.visible');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
expectCardNotExists(status = 'resolved') {
|
|
29
|
+
const selector = this._toSelector(this.appearance, status);
|
|
30
|
+
|
|
31
|
+
return this.cy.get(selector).should('not.exist');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
findCardNth(nth = 1, status = 'resolved') {
|
|
35
|
+
const selector = this._toSelector(this.appearance, status);
|
|
36
|
+
|
|
37
|
+
return this.cy // NOTE: `timeout` used since Smart Links rely on a network response.
|
|
38
|
+
.get(selector, {
|
|
39
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
40
|
+
}).should('have.length.at.least', nth).should('be.visible').eq(nth - 1);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
assertHrefRendered(url) {
|
|
44
|
+
return this.cy.get(`a[href="${url}"]`, {
|
|
45
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
46
|
+
}).should('be.visible');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
assertHrefNotRendered(url) {
|
|
50
|
+
return this.cy.get(`a[href="${url}"]`, {
|
|
51
|
+
timeout: BaseCardPageObject.CARD_TIMEOUT
|
|
52
|
+
}).should('not.exist');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
click(status = 'resolved') {
|
|
56
|
+
return this.findCardNth(1, status).click();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
_defineProperty(BaseCardPageObject, "CARD_TIMEOUT", 15000);
|