Search Preview
Airbnb Engineering & Data Science
airbnb.ioAirbnb.io Open SourceEventsBlogGithubCareersAirbnb.io EnzymeJavaScript Testing utilities for React14,372By Leland RichardsonEnzyme is a JavaScript Testing
.io > airbnb.io
SEO audit: Content analysis
Language | Error! No language localisation is found. | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | Airbnb Engineering & Data Science | ||||||||||||||||||||||||||||||||||||
Text / HTML ratio | 41 % | ||||||||||||||||||||||||||||||||||||
Frame | Excellent! The website does not use iFrame solutions. | ||||||||||||||||||||||||||||||||||||
Flash | Excellent! The website does not have any flash contents. | ||||||||||||||||||||||||||||||||||||
Keywords cloud | => const = > wrapper React npm API enzyme Documentation Enzyme render 'enzyme' savedev shallow CareersDesign >' it'should Read full | ||||||||||||||||||||||||||||||||||||
Keywords consistency |
|
||||||||||||||||||||||||||||||||||||
Headings |
|
||||||||||||||||||||||||||||||||||||
Images | We found 1 images on this web page. |
SEO Keywords (Single)
Keyword | Occurrence | Density |
---|---|---|
=> | 12 | 0.60 % |
const | 11 | 0.55 % |
= | 11 | 0.55 % |
> | 10 | 0.50 % |
wrapper | 9 | 0.45 % |
React | 6 | 0.30 % |
npm | 5 | 0.25 % |
API | 5 | 0.25 % |
enzyme | 4 | 0.20 % |
Documentation | 4 | 0.20 % |
Enzyme | 4 | 0.20 % |
render | 4 | 0.20 % |
'enzyme' | 3 | 0.15 % |
savedev | 3 | 0.15 % |
shallow | 3 | 0.15 % |
CareersDesign | 3 | 0.15 % |
>' | 3 | 0.15 % |
it'should | 3 | 0.15 % |
Read | 3 | 0.15 % |
full | 3 | 0.15 % |
SEO Keywords (Two Word)
Keyword | Occurrence | Density |
---|---|---|
const wrapper | 9 | 0.45 % |
wrapper = | 9 | 0.45 % |
=> const | 8 | 0.40 % |
i savedev | 3 | 0.15 % |
from 'enzyme' | 3 | 0.15 % |
npm i | 3 | 0.15 % |
>' => | 3 | 0.15 % |
it'should render | 3 | 0.15 % |
Enzyme is | 3 | 0.15 % |
= mount2 |
0.10 % |
|
enzyme you | 2 | 0.10 % |
= shallow2 |
0.10 % |
|
shallow |
2 | 0.10 % |
API Documentation | 2 | 0.10 % |
full API | 2 | 0.10 % |
const onButtonClick | 2 | 0.10 % |
the full | 2 | 0.10 % |
expectonButtonClickcalledOncetobetrue Read | 2 | 0.10 % |
wrapperfind'button'simulate'click' expectonButtonClickcalledOncetobetrue | 2 | 0.10 % |
> wrapperfind'button'simulate'click' | 2 | 0.10 % |
SEO Keywords (Three Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
const wrapper = | 9 | 0.45 % | No |
=> const wrapper | 6 | 0.30 % | No |
npm i savedev | 3 | 0.15 % | No |
it'simulates click events' | 2 | 0.10 % | No |
expectonButtonClickcalledOncetobetrue Read the | 2 | 0.10 % | No |
wrapper = shallow2 |
0.10 % |
No |
|
= shallow |
2 | 0.10 % | No |
wrapper = mount2 |
0.10 % |
No |
|
wrapper = shallow | 2 | 0.10 % | No |
full API Documentation | 2 | 0.10 % | No |
the full API | 2 | 0.10 % | No |
Read the full | 2 | 0.10 % | No |
wrapperfind'button'simulate'click' expectonButtonClickcalledOncetobetrue Read | 2 | 0.10 % | No |
click events' => | 2 | 0.10 % | No |
onButtonClick=onButtonClick > wrapperfind'button'simulate'click' | 2 | 0.10 % | No |
|
2 | 0.10 % | No |
sinonspy const wrapper | 2 | 0.10 % | No |
onButtonClick = sinonspy | 2 | 0.10 % | No |
const onButtonClick = | 2 | 0.10 % | No |
=> const onButtonClick | 2 | 0.10 % | No |
SEO Keywords (Four Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
=> const wrapper = | 6 | 0.30 % | No |
|
2 | 0.10 % | No |
wrapper = shallow |
2 | 0.10 % | No |
= sinonspy const wrapper | 2 | 0.10 % | No |
const wrapper = mount2 |
0.10 % |
No |
|
const wrapper = shallow | 2 | 0.10 % | No |
it'simulates click events' => | 2 | 0.10 % | No |
click events' => const | 2 | 0.10 % | No |
the full API Documentation | 2 | 0.10 % | No |
expectonButtonClickcalledOncetobetrue Read the full | 2 | 0.10 % | No |
Read the full API | 2 | 0.10 % | No |
wrapperfind'button'simulate'click' expectonButtonClickcalledOncetobetrue Read the | 2 | 0.10 % | No |
> wrapperfind'button'simulate'click' expectonButtonClickcalledOncetobetrue Read | 2 | 0.10 % | No |
onButtonClick=onButtonClick > wrapperfind'button'simulate'click' expectonButtonClickcalledOncetobetrue | 2 | 0.10 % | No |
events' => const onButtonClick | 2 | 0.10 % | No |
=> const onButtonClick = | 2 | 0.10 % | No |
const onButtonClick = sinonspy | 2 | 0.10 % | No |
onButtonClick = sinonspy const | 2 | 0.10 % | No |
const wrapper = shallow2 |
0.10 % |
No |
|
sinonspy const wrapper = | 2 | 0.10 % | No |
Internal links in - airbnb.io
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb Engineering & Data Science
Airbnb.io Spined HTML
Airbnb Engineering & Data Science Airbnb.io Open SourceEventsBlogGithubCareersAirbnb.io EnzymeJavaScript Testing utilities for React14,372By Leland RichardsonEnzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output. Enzyme's API is meant to be intuitive and flexible by mimicking jQuery's API for DOM manipulation and traversal. Enzyme is unopinionated regarding which test runner or interjection library you use, and should be uniform with all major test runners and interjection libraries out there. The documentation and examples for enzyme use mocha and chai, but you should be worldly-wise to extrapolate to your framework of choice. Installation To get started with enzyme, you can simply install it with npm: npm i --save-dev enzyme Enzyme is currently uniform with both React 0.14.x and React 0.13.x. In order to unzip this compatibility, some dependencies cannot be explicitly listed in our package.json. If you are using React 0.14, in wing to enzyme, you will have to ensure that you moreover have the pursuit npm modules installed if they were not already: npm i --save-dev react-addons-test-utils npm i --save-dev react-dom Basic Usage Shallow Rendering import { shallow } from 'enzyme'; describe('<MyComponent />', () => { it('should render three <Foo /> components', () => { const wrapper = shallow(<MyComponent />); expect(wrapper.find(Foo)).to.have.length(3); }); it('should render an `.icon-star`', () => { const wrapper = shallow(<MyComponent />); expect(wrapper.find('.icon-star')).to.have.length(1); }); it('should render children when passed in', () => { const wrapper = shallow( <MyComponent> <div className="unique" /> </MyComponent> ); expect(wrapper.contains(<div className="unique" />)).to.be.true; }); it('simulates click events', () => { const onButtonClick = sinon.spy(); const wrapper = shallow( <Foo onButtonClick={onButtonClick} /> ); wrapper.find('button').simulate('click'); expect(onButtonClick.calledOnce).to.be.true; }); }); Read the full API Documentation JSDOM Full Rendering import { describeWithDOM, mount, spyLifecycle, } from 'enzyme'; describeWithDOM('<Foo />', () => { it('calls componentDidMount', () => { spyLifecycle(Foo); const wrapper = mount(<Foo />); expect(Foo.prototype.componentDidMount.calledOnce).to.be.true; }); it('allows us to set props', () => { const wrapper = mount(<Foo bar="baz" />); expect(wrapper.props().bar).to.equal("baz"); wrapper.setProps({ bar: "foo" }); expect(wrapper.props().bar).to.equal("foo"); }); it('simulates click events', () => { const onButtonClick = sinon.spy(); const wrapper = mount( <Foo onButtonClick={onButtonClick} /> ); wrapper.find('button').simulate('click'); expect(onButtonClick.calledOnce).to.be.true; }); }); Read the full API Documentation Static Rendered Markup import { render } from 'enzyme'; describe('<Foo />', () => { it('renders three `.foo-bar`s', () => { const wrapper = render(<Foo />); expect(wrapper.find('.foo-bar').length).to.equal(3); }); it('rendered the title', () => { const wrapper = render(<Foo title="unique" />); expect(wrapper.text()).to.contain("unique"); }); }); Read the full API DocumentationLinksGithubDocumentation© Airbnb, Inc.© Airbnb, Inc.CareersDesignCareersDesignCareersDesign