0.1.1 • Published 6 years ago
cypress-jest-adapter v0.1.1
Jest assertions for Cypress
cypress-jest-adapter provides set of custom assertions using jest assertion style to Cypress expect command
Allow to use jest style commands to do assertion:
expect(1).toEqual(1)besides chai assertions style of
expect(1).to.be.equal(1)Also, can do assertions for jQuery elements return from cy.get() function directly:
expect($el).toHaveId
expect($el).toHaveClassExample
Installation
yarn add cypress-jest-adapteror
npm install --save cypress-jest-adapterAdd cypress-jest-adapter to cypress support/index.js file
import 'cypress-jest-adapter'Assertions
Available assertions:
Value assertion (using jest matchers)
| method | assertions |
|---|---|
| toBe | expect(sth).toBe |
| toBeCloseTo | expect(sth).toBeCloseTo |
| toBeDefined | expect(sth).toBeDefined |
| toBeFalsy | expect(sth).toBeFalsy |
| toBeGreaterThan | expect(sth).toBeGreaterThan |
| toBeGreaterThanOrEqual | expect(sth).toBeGreaterThanOrEqual |
| toBeLessThan | expect(sth).toBeLessThan |
| toBeLessThanOrEqual | expect(sth).toBeLessThanOrEqual |
| toBeInstanceOf | expect(sth).toBeInstanceOf |
| toBeNull | expect(sth).toBeNull |
| toBeTruthy | expect(sth).toBeTruthy |
| toBeUndefined | expect(sth).toBeUndefined |
| toBeNaN | expect(sth).toBeNaN |
| toContain | expect(sth).toContain |
| toContainEqual | expect(sth).toContainEqual |
| toEqual | expect(sth).toEqual |
| toHaveLength | expect(sth).toHaveLength |
| toMatch | expect(sth).toMatch |
| toMatchObject | expect(sth).toMatchObject |
| toHaveProperty | expect(sth).toHaveProperty |
| toStrictEqual | expect(sth).toStrictEqual |
| toThrow | expect(sth).toThrow |
Promise handlers
| method | assertions |
|---|---|
| resolves | expect(sth).resolves.toBe(sth) |
| rejects | expect(sth).rejects.toThrow(error) |
Mock assertions (using chai, chai-sinon and jest equal assertion)
| method | assertions |
|---|---|
| toHaveBeenCalled | expect(spy).toHaveBeenCalled |
| toHaveBeenCalledTimes | expect(spy).toHaveBeenCalledTimes |
| toHaveBeenCalledWith | expect(spy).toHaveBeenCalledWith |
| toHaveBeenNthCalledWith | expect(spy).toHaveBeenNthCalledWith |
| toHaveReturned | expect(spy).toHaveReturned |
| toHaveReturnedTimes | expect(spy).toHaveReturnedTimes |
| toHaveReturnedWith | expect(spy).toHaveReturnedWith |
| toHaveLastReturnedWith | expect(spy).toHaveLastReturnedWith |
| toHaveNthReturnedWith | expect(spy).toHaveNthReturnedWith |
Assumptions
| method | assertions |
|---|---|
| anything | expect(sth).toBe(expect.anything()) |
| any | expect(sth).toBe(expect.any()) |
| arrayContaining | expect(sth).toBe(expect.arrayContaining()) |
| objectContaining | expect(sth).toBe(expect.objectContaining()) |
| stringContaining | expect(sth).toBe(expect.stringContaining()) |
| stringMatching | expect(sth).toBe(expect.stringMatching()) |
Not implement Jest functions
| method |
|---|
| toMatchSnapshot |
| toMatchInlineSnapshot |
| toThrowErrorMatchingSnapshot |
| toThrowErrorMatchingInlineSnapshot |
| assertions |
| hasAsertions |
For detailed usages, go to jest expect documentation
Jest-Jquery assertions
| method | assertions | chai-jquery equivalent |
|---|---|---|
| toHaveAttr | expect($ele).toHaveAttr(attribute: string, value?: string) | to.have.attr |
| toHaveProp | expect($ele).toHaveProp(property: string, value?: string) | to.have.prop |
| toHaveCss | expect($ele).toHaveCss(css: string/object, value?: string) | to.have.css |
| toHaveData | expect($ele).toHaveData(key: string, data?: string) | to.have.data |
| toHaveClass | expect($ele).toHaveClass(className: string) | to.have.class |
| toHaveId | expect($ele).toHaveId(id: string) | to.have.id |
| toHaveHtml | expect($ele).toHaveHtml(html: string) | to.have.html |
| toHaveText | expect($ele).toHaveText(text: string) | to.have.text |
| toHaveValue | expect($ele).toHaveValue(value: string) | to.have.value |
| toBeVisible | expect($ele).toBeVisible() | to.be.visible |
| toBeHidden | expect($ele).toBeHidden() | to.be.hidden |
| toBeSelected | expect($ele).toBeSelected() | to.be.selected |
| toBeChecked | expect($ele).toBeChecked() | to.be.checked |
| toBeEnabled | expect($ele).toBeEnabled() | to.be.enabled |
| toBeDisabled | expect($ele).toBeDisabled() | to.be.disabled |
| toBeEmpty | expect($ele).toBeEmpty() | to.be.empty |
| toExist | expect($ele).toExist() | to.exist |
| toBeMatchedBy | expect($ele).toBeMatchedBy(selector: string) | to.match |
| toMatchSelector | expect($ele).toMatchSelector(selector: string) | to.match |
| toContainText | expect($ele).toContainText(text: string) | to.contain |
| toHaveDescendant | expect($ele).toHaveDescendant(selector: string) | to.have.descendants |
| toHaveDescendantWithText | expect($ele).toHaveDescendantWithText(selector: string, text: string) | |
| toHaveQuantity | expect($ele).toHaveQuantity(length: number) | |
| toHaveTag | expect($ele).toHaveTag(tag: string) | |
| toBeFocused | expect($ele).toBeFocused() |
Used library:
- jest expect package for value assertions
- cypress available chai-sinon package for mock assertions
- chai assert function to provide results to cypress
- jest-jquery-matchers for jest-jquery assertions