UNPKG

coveo-search-ui-tests

Version:

Testing framework for the Coveo JavaScript Search Framework

83 lines (56 loc) 2.45 kB
# search-ui-tests Testing framework for the Coveo JavaScript Search Framework ## Usage Include the compiled `bin/js/CoveoJsSearchTests.js` file in your test configuration. ## TypeScript You can import references from the component and then use them in your tests. ### Example In this example, `MyCustomComponent` is a simple custom component that registers a new event handler on the `onBuildingQuery` event to change the pipeline. ```typescript // MyCustomComponent.ts import { Component, ComponentOptions, IComponentBindings, QueryEvents, IBuildingQueryEventArgs } from "coveo-search-ui"; export class MyCustomComponent extends Component { static ID = "MyCustomComponent"; static options: IMyCustomComponentOptions = {} constructor(public element: HTMLElement, public options: IMyCustomComponentOptions, public bindings: IComponentBindings) { super(element, MyCustomComponent.ID, bindings); this.options = ComponentOptions.initComponentOptions(element, MyCustomComponent, options); this.bind.onRootElement(QueryEvents.buildingQuery, (args: IBuildingQueryEventArgs) => args.queryBuilder.pipeline = "a new pipeline"); } } ``` And here is the test to validate this behavior. ```typescript // MyCustomComponent.spec.ts import { MyCustomComponent } from "./MyCustomComponent"; import { Mock, Simulate } from "coveo-search-ui-tests"; describe("MyCustomComponent", () => { let component: Mock.IBasicComponentSetup<MyCustomComponent>; beforeEach(() => { // Creates the component with all the set up required to run properly in a fake Coveo Search Interface environment. component = Mock.basicComponentSetup<MyCustomComponent>(MyCustomComponent); }); afterEach(() => { component = null; }); it("should change the pipeline in the query builder", () => { const expectedPipeline = "a new pipeline"; // Simulate a query executed in the fake environment. const result = Simulate.query(component.env); expect(result.queryBuilder.pipeline).toBe(expectedPipeline); }); }); ``` ## Modules ### Mock Allows to create mocks of components required for the framework. ### Fake Allows to create fake objects like results, events and fields. ### Simulate Allows to simulate some actions in the framework or in the browser.