@atlaskit/editor-common 69.2.1 → 69.2.2

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +21 -0
  3. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +25 -0
  4. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +37 -0
  5. package/dist/cjs/__tests_external__/cases/media/test-cases/alt-text.js +45 -0
  6. package/dist/cjs/__tests_external__/cases/media/test-cases/caption.js +44 -0
  7. package/dist/cjs/__tests_external__/cases/media/test-cases/index.js +23 -0
  8. package/dist/cjs/__tests_external__/cases/media/test-cases/types.js +5 -0
  9. package/dist/cjs/__tests_external__/cases/media/test-cases/upload.js +38 -0
  10. package/dist/cjs/__tests_external__/cases/smart-links/index.js +37 -0
  11. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +43 -0
  12. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +77 -0
  13. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +23 -0
  14. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +42 -0
  15. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +43 -0
  16. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +77 -0
  17. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +23 -0
  18. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +42 -0
  19. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +42 -0
  20. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +75 -0
  21. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +25 -0
  22. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +41 -0
  23. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +44 -0
  24. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/types.js +5 -0
  25. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +19 -0
  26. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +39 -0
  27. package/dist/cjs/__tests_external__/cases/types.js +5 -0
  28. package/dist/cjs/__tests_external__/index.js +55 -0
  29. package/dist/cjs/__tests_external__/page-objects/Editor.js +71 -0
  30. package/dist/cjs/__tests_external__/page-objects/EditorMedia.js +98 -0
  31. package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +232 -0
  32. package/dist/cjs/__tests_external__/page-objects/Renderer.js +59 -0
  33. package/dist/cjs/version.json +1 -1
  34. package/dist/es2019/__tests_external__/cases/fundamentals/collection.js +7 -0
  35. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +12 -0
  36. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  37. package/dist/es2019/__tests_external__/cases/media/test-cases/alt-text.js +29 -0
  38. package/dist/es2019/__tests_external__/cases/media/test-cases/caption.js +28 -0
  39. package/dist/es2019/__tests_external__/cases/media/test-cases/index.js +8 -0
  40. package/dist/es2019/__tests_external__/cases/media/test-cases/types.js +1 -0
  41. package/dist/es2019/__tests_external__/cases/media/test-cases/upload.js +23 -0
  42. package/dist/es2019/__tests_external__/cases/smart-links/index.js +4 -0
  43. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +29 -0
  44. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +59 -0
  45. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/index.js +8 -0
  46. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +28 -0
  47. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +29 -0
  48. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +59 -0
  49. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/index.js +8 -0
  50. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +28 -0
  51. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +28 -0
  52. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +57 -0
  53. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/index.js +9 -0
  54. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +27 -0
  55. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +30 -0
  56. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  57. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/index.js +6 -0
  58. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +25 -0
  59. package/dist/es2019/__tests_external__/cases/types.js +1 -0
  60. package/dist/es2019/__tests_external__/index.js +4 -0
  61. package/dist/es2019/__tests_external__/page-objects/Editor.js +29 -0
  62. package/dist/es2019/__tests_external__/page-objects/EditorMedia.js +51 -0
  63. package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +168 -0
  64. package/dist/es2019/__tests_external__/page-objects/Renderer.js +17 -0
  65. package/dist/es2019/version.json +1 -1
  66. package/dist/esm/__tests_external__/cases/fundamentals/collection.js +9 -0
  67. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +14 -0
  68. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  69. package/dist/esm/__tests_external__/cases/media/test-cases/alt-text.js +32 -0
  70. package/dist/esm/__tests_external__/cases/media/test-cases/caption.js +31 -0
  71. package/dist/esm/__tests_external__/cases/media/test-cases/index.js +10 -0
  72. package/dist/esm/__tests_external__/cases/media/test-cases/types.js +1 -0
  73. package/dist/esm/__tests_external__/cases/media/test-cases/upload.js +26 -0
  74. package/dist/esm/__tests_external__/cases/smart-links/index.js +4 -0
  75. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +30 -0
  76. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +61 -0
  77. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/index.js +10 -0
  78. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +29 -0
  79. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +30 -0
  80. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +61 -0
  81. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/index.js +10 -0
  82. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +29 -0
  83. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +29 -0
  84. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +59 -0
  85. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/index.js +11 -0
  86. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +28 -0
  87. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +31 -0
  88. package/dist/esm/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  89. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/index.js +8 -0
  90. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +26 -0
  91. package/dist/esm/__tests_external__/cases/types.js +1 -0
  92. package/dist/esm/__tests_external__/index.js +4 -0
  93. package/dist/esm/__tests_external__/page-objects/Editor.js +56 -0
  94. package/dist/esm/__tests_external__/page-objects/EditorMedia.js +83 -0
  95. package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +218 -0
  96. package/dist/esm/__tests_external__/page-objects/Renderer.js +45 -0
  97. package/dist/esm/version.json +1 -1
  98. package/package.json +2 -3
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EditorSmartLinkPageObject = 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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _inProductTesting = require("@atlaskit/in-product-testing");
25
+
26
+ var _inProduct = require("@atlaskit/smart-card/in-product");
27
+
28
+ 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); }; }
29
+
30
+ 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; } }
31
+
32
+ var EditorSmartLinkPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
33
+ (0, _inherits2.default)(EditorSmartLinkPageObject, _InProductTestPageObj);
34
+
35
+ var _super = _createSuper(EditorSmartLinkPageObject);
36
+
37
+ function EditorSmartLinkPageObject(cy, editor) {
38
+ var _this;
39
+
40
+ (0, _classCallCheck2.default)(this, EditorSmartLinkPageObject);
41
+ _this = _super.call(this, cy);
42
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "testIds", {
43
+ viewSwitcher: 'link-toolbar-appearance-button',
44
+ displayUrlOption: 'url-appearance',
45
+ displayInlineOption: 'inline-appearance',
46
+ displayCardOption: 'block-appearance',
47
+ displayEmbedOption: 'embed-appearance',
48
+ linkUrl: 'link-url',
49
+ linkLabel: 'link-label'
50
+ });
51
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ariaLabels", {
52
+ editLink: 'Edit link',
53
+ deleteLink: 'Remove',
54
+ unlinkLink: 'Unlink'
55
+ });
56
+ _this.cy = cy;
57
+ _this.editor = editor;
58
+ return _this;
59
+ }
60
+
61
+ (0, _createClass2.default)(EditorSmartLinkPageObject, [{
62
+ key: "getViewSwitcher",
63
+ value: function getViewSwitcher() {
64
+ return this.cy.get(this.toTestId(this.testIds.viewSwitcher));
65
+ }
66
+ }, {
67
+ key: "openViewSwitcher",
68
+ value: function openViewSwitcher() {
69
+ return this.getViewSwitcher().click();
70
+ }
71
+ }, {
72
+ key: "getViewSwitcherOption",
73
+ value: function getViewSwitcherOption() {
74
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
75
+
76
+ switch (type) {
77
+ case 'url':
78
+ {
79
+ return this.cy.get(this.toTestId(this.testIds.displayUrlOption));
80
+ }
81
+
82
+ case 'inline':
83
+ {
84
+ return this.cy.get(this.toTestId(this.testIds.displayInlineOption));
85
+ }
86
+
87
+ case 'block':
88
+ {
89
+ return this.cy.get(this.toTestId(this.testIds.displayCardOption));
90
+ }
91
+
92
+ case 'embed':
93
+ {
94
+ return this.cy.get(this.toTestId(this.testIds.displayEmbedOption));
95
+ }
96
+
97
+ default:
98
+ {
99
+ throw Error("Attempted to switch to `".concat(type, "`: unknown Smart Link view switcher option!"));
100
+ }
101
+ }
102
+ }
103
+ }, {
104
+ key: "selectViewSwitcherOption",
105
+ value: function selectViewSwitcherOption() {
106
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
107
+ var viewSwitcherOption = this.getViewSwitcherOption(type);
108
+ return viewSwitcherOption.click();
109
+ }
110
+ }, {
111
+ key: "insertSmartLinkByTyping",
112
+ value: function insertSmartLinkByTyping(url) {
113
+ return this.editor.getEditorArea().focus().type("".concat(url, " {enter}"), {
114
+ delay: 0
115
+ });
116
+ }
117
+ }, {
118
+ key: "switchAfterInsert",
119
+ value: function switchAfterInsert() {
120
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
121
+ // NOTE: inline inserted by default for all Smart Links.
122
+ var inlineCard = new _inProduct.InlineCardPageObject(this.cy);
123
+ inlineCard.click();
124
+ this.openViewSwitcher();
125
+ this.selectViewSwitcherOption(type);
126
+ }
127
+ }, {
128
+ key: "getSmartLink",
129
+ value: function getSmartLink() {
130
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
131
+
132
+ switch (type) {
133
+ case 'inline':
134
+ {
135
+ return new _inProduct.InlineCardPageObject(this.cy);
136
+ }
137
+
138
+ case 'block':
139
+ {
140
+ return new _inProduct.BlockCardPageObject(this.cy);
141
+ }
142
+
143
+ case 'embed':
144
+ {
145
+ return new _inProduct.EmbedCardPageObject(this.cy);
146
+ }
147
+
148
+ case 'url':
149
+ {
150
+ return new _inProduct.InlineCardPageObject(this.cy);
151
+ }
152
+ }
153
+ }
154
+ }, {
155
+ key: "getEditLinkButton",
156
+ value: function getEditLinkButton() {
157
+ return this.cy.get(this.toAriaLabel(this.ariaLabels.editLink));
158
+ }
159
+ }, {
160
+ key: "openEditLinkMenu",
161
+ value: function openEditLinkMenu() {
162
+ var button = this.getEditLinkButton();
163
+ return button.click();
164
+ }
165
+ }, {
166
+ key: "changeLinkLabel",
167
+ value: function changeLinkLabel(title) {
168
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
169
+ var smartLink = this.getSmartLink(type);
170
+ smartLink.click();
171
+ this.openEditLinkMenu();
172
+ this.typeIntoLabelField(title);
173
+ }
174
+ }, {
175
+ key: "changeLinkUrl",
176
+ value: function changeLinkUrl(url) {
177
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
178
+ this.getSmartLink(type).click();
179
+ this.openEditLinkMenu();
180
+ this.typeIntoUrlField(url);
181
+ }
182
+ }, {
183
+ key: "typeIntoLabelField",
184
+ value: function typeIntoLabelField(title) {
185
+ var titleField = this.cy.get(this.toTestId(this.testIds.linkLabel)).focus();
186
+ titleField.clear();
187
+ titleField.type("".concat(title, "{enter}"), {
188
+ delay: 0
189
+ });
190
+ }
191
+ }, {
192
+ key: "typeIntoUrlField",
193
+ value: function typeIntoUrlField(url) {
194
+ var urlField = this.cy.get(this.toTestId(this.testIds.linkUrl)).focus();
195
+ urlField.clear();
196
+ urlField.type("".concat(url, "{enter}"), {
197
+ delay: 0
198
+ });
199
+ }
200
+ }, {
201
+ key: "deleteSmartLink",
202
+ value: function deleteSmartLink() {
203
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
204
+ this.getSmartLink(type).click();
205
+ this.clickDeleteIcon();
206
+ }
207
+ }, {
208
+ key: "clickDeleteIcon",
209
+ value: function clickDeleteIcon() {
210
+ var ariaLabelSelector = this.toAriaLabel(this.ariaLabels.deleteLink);
211
+ var deleteButtonSelector = "button".concat(ariaLabelSelector);
212
+ return this.cy.get(deleteButtonSelector).click();
213
+ }
214
+ }, {
215
+ key: "unlink",
216
+ value: function unlink() {
217
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
218
+ this.getSmartLink(type).click();
219
+ this.clickUnlinkIcon();
220
+ }
221
+ }, {
222
+ key: "clickUnlinkIcon",
223
+ value: function clickUnlinkIcon() {
224
+ var ariaLabelSelector = this.toAriaLabel(this.ariaLabels.unlinkLink);
225
+ var unlinkButtonSelector = "button".concat(ariaLabelSelector);
226
+ return this.cy.get(unlinkButtonSelector).click();
227
+ }
228
+ }]);
229
+ return EditorSmartLinkPageObject;
230
+ }(_inProductTesting.InProductTestPageObject);
231
+
232
+ exports.EditorSmartLinkPageObject = EditorSmartLinkPageObject;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RendererPageObject = 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 _inProductTesting = require("@atlaskit/in-product-testing");
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 RendererPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
27
+ (0, _inherits2.default)(RendererPageObject, _InProductTestPageObj);
28
+
29
+ var _super = _createSuper(RendererPageObject);
30
+
31
+ function RendererPageObject() {
32
+ (0, _classCallCheck2.default)(this, RendererPageObject);
33
+ return _super.apply(this, arguments);
34
+ }
35
+
36
+ (0, _createClass2.default)(RendererPageObject, [{
37
+ key: "getContent",
38
+ value: function getContent() {
39
+ return this.cy.get('.ak-renderer-document');
40
+ }
41
+ }, {
42
+ key: "expectContentReady",
43
+ value: function expectContentReady() {
44
+ return this.cy.get('.ak-renderer-document').should('be.visible');
45
+ }
46
+ }, {
47
+ key: "expectMediaSingleRenders",
48
+ value: function expectMediaSingleRenders(numOfMedia) {
49
+ var _this = this;
50
+
51
+ return this.cy.get('.rich-media-item').should('have.length', numOfMedia).each(function (element) {
52
+ _this.cy.wrap(element).should('have.attr', 'data-layout', 'center').should('have.attr', 'data-node-type', 'mediaSingle').should('be.visible');
53
+ });
54
+ }
55
+ }]);
56
+ return RendererPageObject;
57
+ }(_inProductTesting.InProductTestPageObject);
58
+
59
+ exports.RendererPageObject = RendererPageObject;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "69.2.1",
3
+ "version": "69.2.2",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,7 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { editorIsPresentTestCase } from './test-cases/editor-is-present';
3
+ import { editorTypingTestCase } from './test-cases/editor-typing';
4
+ export const fundamentalsTestCollection = opts => new InProductTestCollection({
5
+ title: '@atlaskit/editor-core -> Editor fundamentals happy path tests',
6
+ testCases: [editorIsPresentTestCase(opts), editorTypingTestCase(opts)]
7
+ });
@@ -0,0 +1,12 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EditorPageObject } from '../../../page-objects/Editor';
3
+ export const editorIsPresentTestCase = testOptions => new InProductTestCase({
4
+ testOptions,
5
+ title: 'content-area, title of Editor are visible',
6
+ id: 'editor-is-present',
7
+ assertions: cy => {
8
+ const editor = new EditorPageObject(cy);
9
+ editor.getTitleArea().should('be.visible');
10
+ editor.getEditorArea().should('be.visible');
11
+ }
12
+ });
@@ -0,0 +1,25 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EditorPageObject } from '../../../page-objects/Editor';
3
+ import { RendererPageObject } from '../../../page-objects/Renderer';
4
+ export const editorTypingTestCase = opts => new InProductTestCase({
5
+ title: 'typing in Editor works',
6
+ id: 'editor-typing',
7
+ assertions: cy => {
8
+ var _opts$ui;
9
+
10
+ const editor = new EditorPageObject(cy);
11
+ editor.getEditorArea().type('abcdef');
12
+ editor.getEditorArea().contains('abcdef');
13
+
14
+ if (!opts || !((_opts$ui = opts.ui) !== null && _opts$ui !== void 0 && _opts$ui.publishButton)) {
15
+ return;
16
+ }
17
+
18
+ const {
19
+ publishButton
20
+ } = opts.ui;
21
+ const renderer = new RendererPageObject(cy);
22
+ cy.get(publishButton).click();
23
+ renderer.getContent().contains('abcdef');
24
+ }
25
+ });
@@ -0,0 +1,29 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ import { EditorMediaPageObject } from '../../../page-objects/EditorMedia';
5
+ export const addAltTextMediaTestCase = ({
6
+ ui,
7
+ fixtures
8
+ }) => new InProductTestCase({
9
+ title: 'adding alt text to Media works',
10
+ id: 'media-alt-text',
11
+ precondition: () => fixtures.length > 0,
12
+ assertions: cy => {
13
+ const editor = new EditorPageObject(cy);
14
+ const editorMedia = new EditorMediaPageObject(cy);
15
+ const mediaCard = new MediaCardPageObject(cy);
16
+ editor.upload(fixtures);
17
+ mediaCard.expectCardReady(fixtures.length);
18
+ const altText = 'Corne **loves** avocados';
19
+ editorMedia.addAltTextToImage(altText);
20
+ editorMedia.assertAltText(altText);
21
+
22
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
23
+ const renderer = editor.publish(ui);
24
+ renderer.expectContentReady();
25
+ renderer.expectMediaSingleRenders(fixtures.length);
26
+ mediaCard.assertAltText(altText);
27
+ }
28
+ }
29
+ });
@@ -0,0 +1,28 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ import { EditorMediaPageObject } from '../../../page-objects/EditorMedia';
5
+ export const addCaptionMediaTestCase = ({
6
+ ui,
7
+ fixtures
8
+ }) => new InProductTestCase({
9
+ title: 'adding caption to Media works',
10
+ id: 'media-caption',
11
+ precondition: () => fixtures.length > 0,
12
+ assertions: cy => {
13
+ const editor = new EditorPageObject(cy);
14
+ const editorMedia = new EditorMediaPageObject(cy);
15
+ const mediaCard = new MediaCardPageObject(cy);
16
+ editor.upload(fixtures);
17
+ mediaCard.expectCardReady(fixtures.length);
18
+ const captionText = 'Corne loves avocados';
19
+ editorMedia.addCaptionToImage(captionText);
20
+
21
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
22
+ const renderer = editor.publish(ui);
23
+ renderer.expectContentReady();
24
+ renderer.expectMediaSingleRenders(fixtures.length);
25
+ editorMedia.assertCaptionText(captionText);
26
+ }
27
+ }
28
+ });
@@ -0,0 +1,8 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { addAltTextMediaTestCase } from './alt-text';
3
+ import { addCaptionMediaTestCase } from './caption';
4
+ import { uploadMediaTestCase } from './upload';
5
+ export const mediaTestCollection = opts => new InProductTestCollection({
6
+ title: '@atlaskit/editor-core -> Media, happy paths',
7
+ testCases: [uploadMediaTestCase(opts), addAltTextMediaTestCase(opts), addCaptionMediaTestCase(opts)]
8
+ });
@@ -0,0 +1,23 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ export const uploadMediaTestCase = ({
5
+ ui,
6
+ fixtures
7
+ }) => new InProductTestCase({
8
+ title: 'media upload and publish works',
9
+ id: 'media-file-upload',
10
+ precondition: () => fixtures.length > 0,
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const mediaCard = new MediaCardPageObject(cy);
14
+ editor.upload(fixtures);
15
+ mediaCard.expectCardReady(fixtures.length);
16
+
17
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
18
+ const renderer = editor.publish(ui);
19
+ renderer.expectContentReady();
20
+ renderer.expectMediaSingleRenders(fixtures.length);
21
+ }
22
+ }
23
+ });
@@ -0,0 +1,4 @@
1
+ export { inlineSmartLinksTestCollection } from './test-cases/inline';
2
+ export { blockSmartLinksTestCollection } from './test-cases/block';
3
+ export { embedSmartLinksTestCollection } from './test-cases/embed';
4
+ export { blueLinksTestCollection } from './test-cases/url';
@@ -0,0 +1,29 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { BlockCardPageObject, blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export const deleteBlockSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'able to delete a Block Smart Link using floating toolbar',
10
+ id: 'delete-block-smart-link',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('block');
21
+ blockCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ const renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ blockCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });
@@ -0,0 +1,59 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { BlockCardPageObject, blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export const editBlockSmartLinkTitleTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'editing a Block Smart Link renders as Blue Link (title)',
10
+ id: 'block-smart-link-edit-title',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.changeLinkLabel('Avocorne is watching you 🥑', 'block');
21
+ blockCard.assertHrefRendered(url);
22
+ blockCard.expectCardNotExists();
23
+
24
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
25
+ const renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ blockCard.assertHrefRendered(url);
28
+ blockCard.expectCardNotExists();
29
+ }
30
+ }
31
+ });
32
+ export const editBlockSmartLinkUrlTestCase = ({
33
+ ui,
34
+ url
35
+ }) => new InProductTestCase({
36
+ title: 'editing a Block Smart Link renders as Blue Link (URL)',
37
+ id: 'block-smart-link-edit',
38
+ assertions: cy => {
39
+ const editor = new EditorPageObject(cy);
40
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
41
+ const blockCard = new BlockCardPageObject(cy);
42
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
43
+ editorWithSmartLinks.switchAfterInsert('block');
44
+ blockSmartLinkRendersTestCase({
45
+ url
46
+ }).assertions(cy);
47
+ const newUrl = 'https://avo.corne.com';
48
+ editorWithSmartLinks.changeLinkUrl(newUrl, 'block');
49
+ blockCard.expectCardNotExists();
50
+ blockCard.assertHrefRendered(newUrl);
51
+
52
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
53
+ const renderer = editor.publish(ui);
54
+ renderer.expectContentReady();
55
+ blockCard.assertHrefRendered(newUrl);
56
+ blockCard.expectCardNotExists();
57
+ }
58
+ }
59
+ });
@@ -0,0 +1,8 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { deleteBlockSmartLinkTestCase } from './delete';
3
+ import { editBlockSmartLinkTitleTestCase, editBlockSmartLinkUrlTestCase } from './edit';
4
+ import { switchToBlockSmartLinkTestCase } from './insert';
5
+ export const blockSmartLinksTestCollection = opts => new InProductTestCollection({
6
+ title: '@atlaskit/editor-core -> Block Smart Links, happy paths',
7
+ testCases: [switchToBlockSmartLinkTestCase(opts), editBlockSmartLinkTitleTestCase(opts), editBlockSmartLinkUrlTestCase(opts), deleteBlockSmartLinkTestCase(opts)]
8
+ });
@@ -0,0 +1,28 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export const switchToBlockSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'switching to a Block Smart Link works',
10
+ id: 'switch-to-block',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
15
+ editorWithSmartLinks.switchAfterInsert('block');
16
+ blockSmartLinkRendersTestCase({
17
+ url
18
+ }).assertions(cy);
19
+
20
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
21
+ const renderer = editor.publish(ui);
22
+ renderer.expectContentReady();
23
+ blockSmartLinkRendersTestCase({
24
+ url
25
+ }).assertions(cy);
26
+ }
27
+ }
28
+ });
@@ -0,0 +1,29 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EmbedCardPageObject, embedSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export const deleteEmbedSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'able to delete an Embed Smart Link using floating toolbar',
10
+ id: 'delete-embed-smart-link',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const embedCard = new EmbedCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('embed');
17
+ embedSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('embed');
21
+ embedCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ const renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ embedCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });
@@ -0,0 +1,59 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EmbedCardPageObject, embedSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export const editEmbedSmartLinkTitleTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'editing an Embed Smart Link renders as Blue Link (title)',
10
+ id: 'embed-smart-link-edit-title',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const embedCard = new EmbedCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('embed');
17
+ embedSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.changeLinkLabel('Avocorne is watching you 🥑', 'embed');
21
+ embedCard.assertHrefRendered(url);
22
+ embedCard.expectCardNotExists();
23
+
24
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
25
+ const renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ embedCard.assertHrefRendered(url);
28
+ embedCard.expectCardNotExists();
29
+ }
30
+ }
31
+ });
32
+ export const editEmbedSmartLinkUrlTestCase = ({
33
+ ui,
34
+ url
35
+ }) => new InProductTestCase({
36
+ title: 'editing an Embed Smart Link renders as Blue Link (URL)',
37
+ id: 'embed-smart-link-edit',
38
+ assertions: cy => {
39
+ const editor = new EditorPageObject(cy);
40
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
41
+ const embedCard = new EmbedCardPageObject(cy);
42
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
43
+ editorWithSmartLinks.switchAfterInsert('embed');
44
+ embedSmartLinkRendersTestCase({
45
+ url
46
+ }).assertions(cy);
47
+ const newUrl = 'https://avo.corne.com';
48
+ editorWithSmartLinks.changeLinkUrl(newUrl, 'embed');
49
+ embedCard.expectCardNotExists();
50
+ embedCard.assertHrefRendered(newUrl);
51
+
52
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
53
+ const renderer = editor.publish(ui);
54
+ renderer.expectContentReady();
55
+ embedCard.assertHrefRendered(newUrl);
56
+ embedCard.expectCardNotExists();
57
+ }
58
+ }
59
+ });