summaryrefslogtreecommitdiff
path: root/spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2021-01-20 13:34:23 -0600
committerRobert Speicher <rspeicher@gmail.com>2021-01-20 13:34:23 -0600
commit6438df3a1e0fb944485cebf07976160184697d72 (patch)
tree00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js
parent42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff)
downloadgitlab-ce-6438df3a1e0fb944485cebf07976160184697d72.tar.gz
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js')
-rw-r--r--spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js b/spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js
new file mode 100644
index 00000000000..e7b8f1e235b
--- /dev/null
+++ b/spec/frontend/__helpers__/dom_shims/get_client_rects_spec.js
@@ -0,0 +1,71 @@
+const createTestElement = () => {
+ const element = document.createElement('div');
+
+ element.textContent = 'Hello World!';
+
+ return element;
+};
+
+describe('DOM patch for getClientRects', () => {
+ let origHtml;
+ let el;
+
+ beforeEach(() => {
+ origHtml = document.body.innerHTML;
+ el = createTestElement();
+ });
+
+ afterEach(() => {
+ document.body.innerHTML = origHtml;
+ });
+
+ describe('toBeVisible matcher', () => {
+ describe('when not attached to document', () => {
+ it('does not match', () => {
+ expect(el).not.toBeVisible();
+ });
+ });
+
+ describe('when attached to document', () => {
+ beforeEach(() => {
+ document.body.appendChild(el);
+ });
+
+ it('matches', () => {
+ expect(el).toBeVisible();
+ });
+ });
+
+ describe('with parent and attached to document', () => {
+ let parentEl;
+
+ beforeEach(() => {
+ parentEl = createTestElement();
+ parentEl.appendChild(el);
+ document.body.appendChild(parentEl);
+ });
+
+ it('matches', () => {
+ expect(el).toBeVisible();
+ });
+
+ describe.each`
+ style
+ ${{ display: 'none' }}
+ ${{ visibility: 'hidden' }}
+ `('with style $style', ({ style }) => {
+ it('does not match when applied to element', () => {
+ Object.assign(el.style, style);
+
+ expect(el).not.toBeVisible();
+ });
+
+ it('does not match when applied to parent', () => {
+ Object.assign(parentEl.style, style);
+
+ expect(el).not.toBeVisible();
+ });
+ });
+ });
+ });
+});