11import { test , expect } from "@playwright/test" ;
22import { config } from "../general-config" ;
33import { loginViaApi } from "../ux/utils/ux-general-utils" ;
4+ import {
5+ PortletDefBasicInfo ,
6+ getPortletDetails ,
7+ } from "./utils/api-portlets-utils" ;
8+ import {
9+ favoritePortlet ,
10+ unfavoritePortlet ,
11+ } from "./utils/api-preferences-utils" ;
12+
13+ interface PortletSearchResult {
14+ description : string ;
15+ fname : string ;
16+ name : string ;
17+ score : string ;
18+ title : string ;
19+ url : string ;
20+ favorite : boolean ;
21+ }
22+
23+ interface PortletSearchResults {
24+ portlets : PortletSearchResult [ ] ;
25+ }
426
527test ( "search all" , async ( { request } ) => {
628 await loginViaApi ( request , config . users . admin ) ;
@@ -18,11 +40,32 @@ test("search all", async ({ request }) => {
1840 score : "4.0" ,
1941 title : "Daily Business Cartoon" ,
2042 url : "/uPortal/p/daily-business-cartoon.ctf3/max/render.uP" ,
43+ favorite : false ,
2144 } ,
2245 ] ,
2346 } ) ;
2447} ) ;
2548
49+ test ( "search favorited portlet" , async ( { request } ) => {
50+ await loginViaApi ( request , config . users . admin ) ;
51+ const portletFname = 'daily-business-cartoon' ;
52+ const portletDetails : PortletDefBasicInfo = await getPortletDetails ( request , portletFname ) ;
53+ if ( ! portletDetails ) {
54+ console . error ( 'could not retrieve portlet details in order to get portlet ID' ) ;
55+ test . fail ( ) ;
56+ } else {
57+ const portletId = portletDetails . id ;
58+ expect ( await favoritePortlet ( request , portletId ) ) . not . toBeNull ( ) ;
59+ const response = await request . get ( `${ config . url } api/v5-0/portal/search?q=cartoon&type=portlets` ) ;
60+ expect ( await unfavoritePortlet ( request , portletId ) ) . toBe ( true ) ;
61+ expect ( response . status ( ) ) . toEqual ( 200 ) ;
62+ const portletSearchResults : PortletSearchResults = JSON . parse ( await response . text ( ) ) as PortletSearchResults ;
63+ const portletFound : PortletSearchResult = portletSearchResults . portlets [ 0 ] ;
64+ expect ( portletFound . favorite ) . toBe ( true ) ;
65+ expect ( portletFound . fname ) . toBe ( portletFname ) ;
66+ }
67+ } ) ;
68+
2669test ( "search type people" , async ( { request } ) => {
2770 await loginViaApi ( request , config . users . admin ) ;
2871 const response = await request . get (
0 commit comments