@elastic/search-ui
Advanced tools
Comparing version 1.10.2 to 1.11.0-canary.0
@@ -12,2 +12,16 @@ "use strict"; | ||
}); | ||
driver.state.autocompletedResults = [ | ||
{ | ||
_meta: { | ||
last_updated: "2022-02-23T00:40:10+00:00", | ||
source: "custom", | ||
content_source_id: "621581b6174a804659f9dc16", | ||
id: "park_great-smoky-mountains", | ||
score: 2.057784 | ||
}, | ||
last_updated: { | ||
raw: "2022-02-23T00:40:10+00:00" | ||
} | ||
} | ||
]; | ||
driver.trackAutocompleteClickThrough(documentId, tags); | ||
@@ -21,9 +35,12 @@ return { driver, mockApiConnector, updatedStateAfterAction }; | ||
it("Calls Connector 'autocompleteClick' with correct parameters", () => { | ||
const { mockApiConnector } = subject({}, 1, ["test"]); | ||
const [{ query, documentId, requestId, tags }] = (0, helpers_1.getAutocompleteClickCalls)(mockApiConnector)[0]; | ||
expect(documentId).toEqual(1); | ||
const { mockApiConnector } = subject({}, "park_great-smoky-mountains", [ | ||
"test" | ||
]); | ||
const [{ query, documentId, requestId, tags, result }] = (0, helpers_1.getAutocompleteClickCalls)(mockApiConnector)[0]; | ||
expect(documentId).toEqual("park_great-smoky-mountains"); | ||
expect(query).toEqual("search terms"); | ||
expect(tags).toEqual(["test"]); | ||
expect(requestId).toEqual("6789"); | ||
expect(result._meta.content_source_id).toEqual("621581b6174a804659f9dc16"); | ||
}); | ||
}); |
@@ -7,2 +7,17 @@ "use strict"; | ||
const { driver, mockApiConnector } = (0, helpers_1.setupDriver)({ initialState }); | ||
driver.state.results = [ | ||
{ | ||
_meta: { | ||
last_updated: "2022-02-23T00:40:10+00:00", | ||
source: "custom", | ||
content_source_id: "621581b6174a804659f9dc16", | ||
id: "park_great-smoky-mountains", | ||
score: 2.057784 | ||
}, | ||
last_updated: { | ||
raw: "2022-02-23T00:40:10+00:00" | ||
} | ||
} | ||
]; | ||
driver.state.current = 1; | ||
driver.trackClickThrough(documentId, tags); | ||
@@ -17,9 +32,11 @@ jest.runAllTimers(); | ||
it("Calls Connector 'click' with correct parameters", () => { | ||
const { mockApiConnector } = subject({ initialState: { searchTerm: "search terms" } }, "1", ["test"]); | ||
const [{ query, documentId, requestId, tags }] = (0, helpers_1.getClickCalls)(mockApiConnector)[0]; | ||
expect(documentId).toEqual("1"); | ||
const { mockApiConnector } = subject({ initialState: { searchTerm: "search terms" } }, "park_great-smoky-mountains", ["test"]); | ||
const [{ query, documentId, requestId, tags, result, page }] = (0, helpers_1.getClickCalls)(mockApiConnector)[0]; | ||
expect(documentId).toEqual("park_great-smoky-mountains"); | ||
expect(query).toEqual("search terms"); | ||
expect(tags).toEqual(["test"]); | ||
expect(requestId).toEqual("12345"); | ||
expect(result._meta.content_source_id).toEqual("621581b6174a804659f9dc16"); | ||
expect(page).toBe(1); | ||
}); | ||
}); |
@@ -367,3 +367,3 @@ "use strict"; | ||
describe("#getActions", () => { | ||
it("returns the current state", () => { | ||
it("returns the current actions", () => { | ||
const driver = new SearchDriver_1.default(params); | ||
@@ -385,2 +385,10 @@ const actions = driver.getActions(); | ||
}); | ||
it("includes connector actions if they're available", () => { | ||
const driver = new SearchDriver_1.default({ | ||
apiConnector: (0, helpers_1.getMockApiConnectorWithStateAndActions)(), | ||
trackUrlState: false | ||
}); | ||
const actions = driver.getActions(); | ||
expect(Object.keys(actions).length).toBe(13); | ||
}); | ||
}); | ||
@@ -387,0 +395,0 @@ describe("_updateSearchResults", () => { |
@@ -17,3 +17,5 @@ "use strict"; | ||
} | ||
const { autocompletedResultsRequestId, searchTerm } = this.state; | ||
const { autocompletedResultsRequestId, searchTerm, autocompletedResults } = this.state; | ||
const resultIndex = autocompletedResults.findIndex((result) => result._meta.id === documentId); | ||
const result = autocompletedResults[resultIndex]; | ||
this.events.autocompleteResultClick({ | ||
@@ -23,5 +25,7 @@ query: searchTerm, | ||
requestId: autocompletedResultsRequestId, | ||
tags | ||
tags, | ||
result, | ||
resultIndex | ||
}); | ||
} | ||
exports.default = trackAutocompleteClickThrough; |
@@ -16,3 +16,5 @@ "use strict"; | ||
console.log("Search UI: Action", "trackClickThrough", ...arguments); | ||
const { requestId, searchTerm } = this.state; | ||
const { requestId, searchTerm, results, current, resultsPerPage } = this.state; | ||
const resultIndexOnPage = results.findIndex((result) => result._meta.id === documentId); | ||
const result = results[resultIndexOnPage]; | ||
this.events.resultClick({ | ||
@@ -22,5 +24,9 @@ query: searchTerm, | ||
requestId, | ||
tags | ||
tags, | ||
result, | ||
page: current, | ||
resultsPerPage, | ||
resultIndexOnPage | ||
}); | ||
} | ||
exports.default = trackClickThrough; |
@@ -253,2 +253,3 @@ "use strict"; | ||
}, {}); | ||
this.actions = Object.assign(Object.assign({}, this.actions), ((apiConnector === null || apiConnector === void 0 ? void 0 : apiConnector.actions) && Object.assign({}, apiConnector.actions))); | ||
Object.assign(this, this.actions); | ||
@@ -255,0 +256,0 @@ this.events = new Events_1.default({ |
@@ -0,1 +1,2 @@ | ||
/// <reference types="jest" /> | ||
import SearchDriver, { SearchDriverOptions } from "../SearchDriver"; | ||
@@ -13,2 +14,14 @@ import { APIConnector, Filter, SearchState, ResponseState } from "../types"; | ||
export declare function getMockApiConnector(): APIConnector; | ||
export declare function getMockApiConnectorWithStateAndActions(): { | ||
state: { | ||
foo: string; | ||
}; | ||
actions: { | ||
bar: jest.Mock<any, any>; | ||
}; | ||
onSearch: (state: import("../types").RequestState, queryConfig: import("../types").QueryConfig) => Promise<ResponseState>; | ||
onAutocomplete(state: import("../types").RequestState, queryConfig: import("../types").AutocompleteQueryConfig): Promise<import("../types").AutocompleteResponseState>; | ||
onResultClick(params: any): void; | ||
onAutocompleteResultClick(params: any): void; | ||
}; | ||
declare type SetupDriverOptions = { | ||
@@ -15,0 +28,0 @@ mockSearchResponse?: any; |
@@ -17,3 +17,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.waitATick = exports.getAutocompleteClickCalls = exports.getClickCalls = exports.getAutocompleteCalls = exports.getSearchCalls = exports.doesStateHaveResponseData = exports.setupDriver = exports.getMockApiConnector = exports.searchResponse = void 0; | ||
exports.waitATick = exports.getAutocompleteClickCalls = exports.getClickCalls = exports.getAutocompleteCalls = exports.getSearchCalls = exports.doesStateHaveResponseData = exports.setupDriver = exports.getMockApiConnectorWithStateAndActions = exports.getMockApiConnector = exports.searchResponse = void 0; | ||
const SearchDriver_1 = __importDefault(require("../SearchDriver")); | ||
@@ -65,2 +65,8 @@ const suggestions = { | ||
exports.getMockApiConnector = getMockApiConnector; | ||
function getMockApiConnectorWithStateAndActions() { | ||
return Object.assign(Object.assign({}, getMockApiConnector()), { state: { foo: "foo" }, actions: { | ||
bar: jest.fn().mockReturnValue("bar") | ||
} }); | ||
} | ||
exports.getMockApiConnectorWithStateAndActions = getMockApiConnectorWithStateAndActions; | ||
function setupDriver(_a = { | ||
@@ -67,0 +73,0 @@ mockSearchResponse: null, |
@@ -106,2 +106,3 @@ import { SearchDriverActions } from ".."; | ||
state: any; | ||
actions?: any; | ||
} | ||
@@ -108,0 +109,0 @@ export declare type QueryConfig = RequestState & SearchQuery; |
@@ -10,2 +10,16 @@ import { getAutocompleteClickCalls, setupDriver } from "../../test/helpers"; | ||
}); | ||
driver.state.autocompletedResults = [ | ||
{ | ||
_meta: { | ||
last_updated: "2022-02-23T00:40:10+00:00", | ||
source: "custom", | ||
content_source_id: "621581b6174a804659f9dc16", | ||
id: "park_great-smoky-mountains", | ||
score: 2.057784 | ||
}, | ||
last_updated: { | ||
raw: "2022-02-23T00:40:10+00:00" | ||
} | ||
} | ||
]; | ||
driver.trackAutocompleteClickThrough(documentId, tags); | ||
@@ -19,9 +33,12 @@ return { driver, mockApiConnector, updatedStateAfterAction }; | ||
it("Calls Connector 'autocompleteClick' with correct parameters", () => { | ||
const { mockApiConnector } = subject({}, 1, ["test"]); | ||
const [{ query, documentId, requestId, tags }] = getAutocompleteClickCalls(mockApiConnector)[0]; | ||
expect(documentId).toEqual(1); | ||
const { mockApiConnector } = subject({}, "park_great-smoky-mountains", [ | ||
"test" | ||
]); | ||
const [{ query, documentId, requestId, tags, result }] = getAutocompleteClickCalls(mockApiConnector)[0]; | ||
expect(documentId).toEqual("park_great-smoky-mountains"); | ||
expect(query).toEqual("search terms"); | ||
expect(tags).toEqual(["test"]); | ||
expect(requestId).toEqual("6789"); | ||
expect(result._meta.content_source_id).toEqual("621581b6174a804659f9dc16"); | ||
}); | ||
}); |
@@ -5,2 +5,17 @@ import { getClickCalls, setupDriver } from "../../test/helpers"; | ||
const { driver, mockApiConnector } = setupDriver({ initialState }); | ||
driver.state.results = [ | ||
{ | ||
_meta: { | ||
last_updated: "2022-02-23T00:40:10+00:00", | ||
source: "custom", | ||
content_source_id: "621581b6174a804659f9dc16", | ||
id: "park_great-smoky-mountains", | ||
score: 2.057784 | ||
}, | ||
last_updated: { | ||
raw: "2022-02-23T00:40:10+00:00" | ||
} | ||
} | ||
]; | ||
driver.state.current = 1; | ||
driver.trackClickThrough(documentId, tags); | ||
@@ -15,9 +30,11 @@ jest.runAllTimers(); | ||
it("Calls Connector 'click' with correct parameters", () => { | ||
const { mockApiConnector } = subject({ initialState: { searchTerm: "search terms" } }, "1", ["test"]); | ||
const [{ query, documentId, requestId, tags }] = getClickCalls(mockApiConnector)[0]; | ||
expect(documentId).toEqual("1"); | ||
const { mockApiConnector } = subject({ initialState: { searchTerm: "search terms" } }, "park_great-smoky-mountains", ["test"]); | ||
const [{ query, documentId, requestId, tags, result, page }] = getClickCalls(mockApiConnector)[0]; | ||
expect(documentId).toEqual("park_great-smoky-mountains"); | ||
expect(query).toEqual("search terms"); | ||
expect(tags).toEqual(["test"]); | ||
expect(requestId).toEqual("12345"); | ||
expect(result._meta.content_source_id).toEqual("621581b6174a804659f9dc16"); | ||
expect(page).toBe(1); | ||
}); | ||
}); |
@@ -11,3 +11,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
import SearchDriver, { DEFAULT_STATE } from "../SearchDriver"; | ||
import { doesStateHaveResponseData, setupDriver, getMockApiConnector, waitATick, searchResponse } from "../test/helpers"; | ||
import { doesStateHaveResponseData, setupDriver, getMockApiConnector, searchResponse, getMockApiConnectorWithStateAndActions, waitATick } from "../test/helpers"; | ||
// We mock this so no state is actually written to the URL | ||
@@ -344,3 +344,3 @@ jest.mock("../URLManager"); | ||
describe("#getActions", () => { | ||
it("returns the current state", () => { | ||
it("returns the current actions", () => { | ||
const driver = new SearchDriver(params); | ||
@@ -362,2 +362,10 @@ const actions = driver.getActions(); | ||
}); | ||
it("includes connector actions if they're available", () => { | ||
const driver = new SearchDriver({ | ||
apiConnector: getMockApiConnectorWithStateAndActions(), | ||
trackUrlState: false | ||
}); | ||
const actions = driver.getActions(); | ||
expect(Object.keys(actions).length).toBe(13); | ||
}); | ||
}); | ||
@@ -364,0 +372,0 @@ describe("_updateSearchResults", () => { |
@@ -15,3 +15,5 @@ /** | ||
} | ||
const { autocompletedResultsRequestId, searchTerm } = this.state; | ||
const { autocompletedResultsRequestId, searchTerm, autocompletedResults } = this.state; | ||
const resultIndex = autocompletedResults.findIndex((result) => result._meta.id === documentId); | ||
const result = autocompletedResults[resultIndex]; | ||
this.events.autocompleteResultClick({ | ||
@@ -21,4 +23,6 @@ query: searchTerm, | ||
requestId: autocompletedResultsRequestId, | ||
tags | ||
tags, | ||
result, | ||
resultIndex | ||
}); | ||
} |
@@ -14,3 +14,5 @@ /** | ||
console.log("Search UI: Action", "trackClickThrough", ...arguments); | ||
const { requestId, searchTerm } = this.state; | ||
const { requestId, searchTerm, results, current, resultsPerPage } = this.state; | ||
const resultIndexOnPage = results.findIndex((result) => result._meta.id === documentId); | ||
const result = results[resultIndexOnPage]; | ||
this.events.resultClick({ | ||
@@ -20,4 +22,8 @@ query: searchTerm, | ||
requestId, | ||
tags | ||
tags, | ||
result, | ||
page: current, | ||
resultsPerPage, | ||
resultIndexOnPage | ||
}); | ||
} |
@@ -228,2 +228,3 @@ var __rest = (this && this.__rest) || function (s, e) { | ||
}, {}); | ||
this.actions = Object.assign(Object.assign({}, this.actions), ((apiConnector === null || apiConnector === void 0 ? void 0 : apiConnector.actions) && Object.assign({}, apiConnector.actions))); | ||
Object.assign(this, this.actions); | ||
@@ -230,0 +231,0 @@ this.events = new Events({ |
@@ -0,1 +1,2 @@ | ||
/// <reference types="jest" /> | ||
import SearchDriver, { SearchDriverOptions } from "../SearchDriver"; | ||
@@ -13,2 +14,14 @@ import { APIConnector, Filter, SearchState, ResponseState } from "../types"; | ||
export declare function getMockApiConnector(): APIConnector; | ||
export declare function getMockApiConnectorWithStateAndActions(): { | ||
state: { | ||
foo: string; | ||
}; | ||
actions: { | ||
bar: jest.Mock<any, any>; | ||
}; | ||
onSearch: (state: import("../types").RequestState, queryConfig: import("../types").QueryConfig) => Promise<ResponseState>; | ||
onAutocomplete(state: import("../types").RequestState, queryConfig: import("../types").AutocompleteQueryConfig): Promise<import("../types").AutocompleteResponseState>; | ||
onResultClick(params: any): void; | ||
onAutocompleteResultClick(params: any): void; | ||
}; | ||
declare type SetupDriverOptions = { | ||
@@ -15,0 +28,0 @@ mockSearchResponse?: any; |
@@ -57,2 +57,7 @@ var __rest = (this && this.__rest) || function (s, e) { | ||
} | ||
export function getMockApiConnectorWithStateAndActions() { | ||
return Object.assign(Object.assign({}, getMockApiConnector()), { state: { foo: "foo" }, actions: { | ||
bar: jest.fn().mockReturnValue("bar") | ||
} }); | ||
} | ||
export function setupDriver(_a = { | ||
@@ -59,0 +64,0 @@ mockSearchResponse: null, |
@@ -106,2 +106,3 @@ import { SearchDriverActions } from ".."; | ||
state: any; | ||
actions?: any; | ||
} | ||
@@ -108,0 +109,0 @@ export declare type QueryConfig = RequestState & SearchQuery; |
{ | ||
"name": "@elastic/search-ui", | ||
"version": "1.10.2", | ||
"version": "1.11.0-canary.0+7fabe6e", | ||
"description": "A Headless Search UI library", | ||
@@ -47,3 +47,3 @@ "license": "Apache-2.0", | ||
}, | ||
"gitHead": "fe5e8c5aa9cc97a33e518f7247675d48385449c4" | ||
"gitHead": "7fabe6e66a2b31ebbe281c6283b6d11a6f8ef9ef" | ||
} |
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
403905
9624
2
1