@@ -676,12 +676,27 @@ reflected in the mock.
676676
677677` ` ` typescript
678678// src/plugins/myplugin/public/saved_query_service.ts
679- import { SavedObjectsClientContract , SavedObjectAttributes } from ' src/core/public' ;
679+ import {
680+ SavedObjectsClientContract ,
681+ SavedObjectAttributes ,
682+ SimpleSavedObject ,
683+ } from ' src/core/public' ;
684+
685+ export type SavedQueryAttributes = SavedObjectAttributes & {
686+ title: string ;
687+ description: ' bar' ;
688+ query: {
689+ language: ' kuery' ;
690+ query: ' response:200' ;
691+ };
692+ };
680693
681694export const createSavedQueryService = (savedObjectsClient : SavedObjectsClientContract ) => {
682- const saveQuery = async (attributes : SavedObjectAttributes ) => {
695+ const saveQuery = async (
696+ attributes : SavedQueryAttributes
697+ ): Promise <SimpleSavedObject <SavedQueryAttributes >> => {
683698 try {
684- return await savedObjectsClient .create (' query' , attributes , {
699+ return await savedObjectsClient .create < SavedQueryAttributes > (' query' , attributes , {
685700 id: attributes .title as string ,
686701 });
687702 } catch (err ) {
@@ -697,12 +712,12 @@ export const createSavedQueryService = (savedObjectsClient: SavedObjectsClientCo
697712
698713` ` ` typescript
699714// src/plugins/myplugin/public/saved_query_service.test.ts
700- import { createSavedQueryService } from ' ./saved_query_service' ;
701- import { savedObjectsServiceMock } from ' ../../../core/public/mocks' ;
702- import { SavedObjectsClientContract , SimpleSavedObject } from ' ../../../core/public' ;
715+ import { createSavedQueryService , SavedQueryAttributes } from ' ./saved_query_service' ;
716+ import { savedObjectsServiceMock } from ' ../../../../../ core/public/mocks' ;
717+ import { SavedObjectsClientContract , SimpleSavedObject } from ' ../../../../../ core/public' ;
703718
704719describe (' saved query service' , () => {
705- const savedQueryAttributes = {
720+ const savedQueryAttributes: SavedQueryAttributes = {
706721 title: ' foo' ,
707722 description: ' bar' ,
708723 query: {
@@ -739,12 +754,17 @@ describe('saved query service', () => {
739754 expect (response ).toBe (mockReturnValue );
740755 });
741756
742- it (' should reject with an error when saved objects client errors' , () => {
757+ it (' should reject with an error when saved objects client errors' , async done => {
743758 mockSavedObjectsClient .create .mockRejectedValue (new Error (' timeout' ));
744759
745- return expect (
746- savedQueryService .saveQuery (savedQueryAttributes )
747- ).rejects .toMatchInlineSnapshot (` [Error: Unable to create saved query, please try again.] ` );
760+ try {
761+ await savedQueryService .saveQuery (savedQueryAttributes );
762+ } catch (err ) {
763+ expect (err ).toMatchInlineSnapshot (
764+ ` [Error: Unable to create saved query, please try again.] `
765+ );
766+ done ();
767+ }
748768 });
749769 });
750770});
0 commit comments