diff options
Diffstat (limited to 'devtools/client/accessibility/test/node/components/audit-controller.test.js')
-rw-r--r-- | devtools/client/accessibility/test/node/components/audit-controller.test.js | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/devtools/client/accessibility/test/node/components/audit-controller.test.js b/devtools/client/accessibility/test/node/components/audit-controller.test.js new file mode 100644 index 0000000000..ad8ba3ee2b --- /dev/null +++ b/devtools/client/accessibility/test/node/components/audit-controller.test.js @@ -0,0 +1,91 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +"use strict"; + +const { mount } = require("enzyme"); + +const { + createFactory, +} = require("resource://devtools/client/shared/vendor/react.js"); +const { + span, +} = require("resource://devtools/client/shared/vendor/react-dom-factories.js"); + +const AuditController = createFactory( + require("resource://devtools/client/accessibility/components/AuditController.js") +); +const { + mockAccessible, +} = require("resource://devtools/client/accessibility/test/node/helpers.js"); + +describe("AuditController component:", () => { + it("dead accessible actor", () => { + const accessibleFront = mockAccessible(); + const wrapper = mount( + AuditController( + { + accessibleFront, + }, + span() + ) + ); + + expect(wrapper.html()).toMatchSnapshot(); + expect(wrapper.find("span").length).toBe(1); + expect(wrapper.find("span").first().props()).toMatchObject({ + checks: undefined, + }); + + const instance = wrapper.instance(); + expect(accessibleFront.on.mock.calls.length).toBe(1); + expect(accessibleFront.off.mock.calls.length).toBe(1); + expect(accessibleFront.on.mock.calls[0]).toEqual([ + "audited", + instance.onAudited, + ]); + expect(accessibleFront.off.mock.calls[0]).toEqual([ + "audited", + instance.onAudited, + ]); + }); + + it("accessible without checks", () => { + const accessibleFront = mockAccessible({ + actorID: "1", + }); + const wrapper = mount( + AuditController( + { + accessibleFront, + }, + span() + ) + ); + + expect(wrapper.html()).toMatchSnapshot(); + expect(accessibleFront.audit.mock.calls.length).toBe(1); + expect(accessibleFront.on.mock.calls.length).toBe(1); + expect(accessibleFront.off.mock.calls.length).toBe(0); + }); + + it("accessible with checks", () => { + const checks = { foo: "bar" }; + const accessibleFront = mockAccessible({ + actorID: "1", + checks, + }); + const wrapper = mount( + AuditController( + { + accessibleFront, + }, + span({ className: "child" }) + ) + ); + + expect(wrapper.html()).toMatchSnapshot(); + expect(wrapper.state("checks")).toMatchObject(checks); + expect(wrapper.find(".child").prop("checks")).toMatchObject(checks); + }); +}); |