diff --git a/package-lock.json b/package-lock.json index 0f575d3c..ad6b342a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.0.0-beta.4", "dependencies": { "@contentstack/core": "^1.0.1", - "@contentstack/utils": "^1.3.1", + "@contentstack/utils": "^1.3.3", "@types/humps": "^2.0.6", "dotenv": "^16.3.1", "humps": "^2.0.1" @@ -1846,9 +1846,9 @@ } }, "node_modules/@contentstack/utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.3.1.tgz", - "integrity": "sha512-qvhEYAxPzUAC++pA2y6W9uMHAsyeFhRLd/bw/Mw2TblBkOxf62W1ASuRdJZz2bfSYp8aAX4HBC22DvzYvkLgHg==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.3.3.tgz", + "integrity": "sha512-Zj2ejyfbxZlXrF1Wl9lhwK2mCCWo5ooiDnSlNA8nupZ1nDsTfouYERgps8r/uyzm18Vda2wBitxloThxKAyzsA==" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -12156,9 +12156,9 @@ } }, "@contentstack/utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.3.1.tgz", - "integrity": "sha512-qvhEYAxPzUAC++pA2y6W9uMHAsyeFhRLd/bw/Mw2TblBkOxf62W1ASuRdJZz2bfSYp8aAX4HBC22DvzYvkLgHg==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.3.3.tgz", + "integrity": "sha512-Zj2ejyfbxZlXrF1Wl9lhwK2mCCWo5ooiDnSlNA8nupZ1nDsTfouYERgps8r/uyzm18Vda2wBitxloThxKAyzsA==" }, "@cspotcode/source-map-support": { "version": "0.8.1", diff --git a/package.json b/package.json index 0ad398b9..5bf4cbc4 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@contentstack/core": "^1.0.1", - "@contentstack/utils": "^1.3.1", + "@contentstack/utils": "^1.3.3", "@types/humps": "^2.0.6", "dotenv": "^16.3.1", "humps": "^2.0.1" diff --git a/src/lib/query.ts b/src/lib/query.ts index a8904084..30f5900e 100644 --- a/src/lib/query.ts +++ b/src/lib/query.ts @@ -295,7 +295,7 @@ export class Query extends BaseQuery { * * @returns {Query} */ - referenceIn(key: string, query: Query) { + referenceIn(key: string, query: Query): Query { this._parameters[key] = { '$in_query': query._parameters } return this; } @@ -313,7 +313,7 @@ export class Query extends BaseQuery { * * @returns {Query} */ - referenceNotIn(key: string, query: Query) { + referenceNotIn(key: string, query: Query): Query { this._parameters[key] = { '$nin_query': query._parameters } return this; } @@ -335,4 +335,8 @@ export class Query extends BaseQuery { this._parameters['tags'] = values; return this; } + search(key: string): Query { + this._queryParams['typeahead'] = key + return this + } } diff --git a/test/api/entry-queryables.spec.ts b/test/api/entry-queryables.spec.ts index 126ebb29..7bfa33b8 100644 --- a/test/api/entry-queryables.spec.ts +++ b/test/api/entry-queryables.spec.ts @@ -142,6 +142,16 @@ describe('Query Operators API test cases', () => { expect(query.entries[0].title).toBe('value'); } }); + + it('should search for the matching key and return the entry', async () => { + const query = await makeEntries('contenttype_uid').query().search('value2').find(); + if (query.entries) { + expect(query.entries[0]._version).toBeDefined(); + expect(query.entries[0].locale).toBeDefined(); + expect(query.entries[0].uid).toBeDefined(); + expect(query.entries[0].title).toBe('value2'); + } + }); }); function makeEntries(contentTypeUid = ''): Entries { diff --git a/test/unit/entry-queryable.spec.ts b/test/unit/entry-queryable.spec.ts index 09ce14cb..ea7a4a0e 100644 --- a/test/unit/entry-queryable.spec.ts +++ b/test/unit/entry-queryable.spec.ts @@ -67,4 +67,10 @@ describe('Query Operators API test cases', () => { expect(query._parameters).toEqual({ tags: ['tag1'] }); } }); + it('should search for the matching key and return the entry', async () => { + const query = contentType.Entry().query().search('entry'); + if (query) { + expect(query._queryParams).toEqual({ typeahead: 'entry' }); + } + }); }); \ No newline at end of file