|
|
@@ -0,0 +1,21 @@
|
|
|
+// from https://github.com/cypress-io/cypress/issues/877#issuecomment-538708750
|
|
|
+const isInViewport = (_chai) => {
|
|
|
+ function assertIsInViewport() {
|
|
|
+
|
|
|
+ const subject = this._obj;
|
|
|
+
|
|
|
+ const bottom = Cypress.config("viewportWidth");
|
|
|
+ const rect = subject[0].getBoundingClientRect();
|
|
|
+
|
|
|
+ this.assert(
|
|
|
+ rect.top < bottom && rect.bottom < bottom,
|
|
|
+ "expected #{this} to be in viewport",
|
|
|
+ "expected #{this} to not be in viewport",
|
|
|
+ this._obj
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ _chai.Assertion.addMethod('inViewport', assertIsInViewport)
|
|
|
+};
|
|
|
+
|
|
|
+chai.use(isInViewport);
|