diff --git a/bin/si-luminork-api-tests/src/api/components.ts b/bin/si-luminork-api-tests/src/api/components.ts index d243f72c18..dbd343f896 100644 --- a/bin/si-luminork-api-tests/src/api/components.ts +++ b/bin/si-luminork-api-tests/src/api/components.ts @@ -1,10 +1,10 @@ /** * Components API Client - * + * * Client for interacting with Components endpoints */ -import { LuminorkClient, ApiResponse } from '../client.ts'; +import { LuminorkClient, ApiResponse } from "../client.ts"; // Type definitions for Components API export interface ComponentView { @@ -50,7 +50,7 @@ export interface CreateComponentResponse { sockets?: Array; domainProps?: Array; resourceProps?: Array; - } + }; } export interface UpdateComponentResponse { @@ -69,11 +69,17 @@ export interface UpdateComponentResponse { sockets?: Array; domainProps?: Array; resourceProps?: Array; - } + }; +} + +export interface ComponentDetails { + componentId: string; + name: string; + schemaName: string; } export interface ListComponentsResponse { - components: string[]; + componentDetails: ComponentDetails[]; nextCursor: string | null; } @@ -95,7 +101,7 @@ export interface GetComponentResponse { resourceProps?: Array; action_functions?: Array; management_functions?: Array; - } + }; } export interface FindComponentParams { @@ -128,81 +134,86 @@ export interface AddActionResponse { */ export class ComponentsApi { private client: LuminorkClient; - + constructor(client: LuminorkClient) { this.client = client; } - + /** * Build the full path with workspace and changeset IDs */ - private buildPath(workspaceId: string, changeSetId: string, path: string): string { + private buildPath( + workspaceId: string, + changeSetId: string, + path: string, + ): string { return `/v1/w/${workspaceId}/change-sets/${changeSetId}/components${path}`; } - + /** * Create a new component */ async createComponent( workspaceId: string, changeSetId: string, - data: CreateComponentRequest + data: CreateComponentRequest, ): Promise> { return this.client.post( - this.buildPath(workspaceId, changeSetId, ''), - data + this.buildPath(workspaceId, changeSetId, ""), + data, ); } - + /** * List all components in a change set */ async listComponents( workspaceId: string, - changeSetId: string + changeSetId: string, ): Promise> { return this.client.get( - this.buildPath(workspaceId, changeSetId, '') + this.buildPath(workspaceId, changeSetId, ""), ); } - + /** * Find components by name or schema */ async findComponent( workspaceId: string, changeSetId: string, - params: FindComponentParams + params: FindComponentParams, ): Promise> { - const url = new URL(this.buildPath(workspaceId, changeSetId, '/find'), this.client.getBaseUrl()); - + const url = new URL( + this.buildPath(workspaceId, changeSetId, "/find"), + this.client.getBaseUrl(), + ); + // Add search parameters if (params.name) { - url.searchParams.append('component', params.name); + url.searchParams.append("component", params.name); } - + if (params.schema_id) { - url.searchParams.append('schema_id', params.schema_id); + url.searchParams.append("schema_id", params.schema_id); } - - return this.client.get( - url.toString() - ); + + return this.client.get(url.toString()); } - + /** * Get a specific component */ async getComponent( workspaceId: string, changeSetId: string, - componentId: string + componentId: string, ): Promise> { return this.client.get( - this.buildPath(workspaceId, changeSetId, `/${componentId}`) + this.buildPath(workspaceId, changeSetId, `/${componentId}`), ); } - + /** * Update a component */ @@ -210,27 +221,27 @@ export class ComponentsApi { workspaceId: string, changeSetId: string, componentId: string, - data: UpdateComponentRequest + data: UpdateComponentRequest, ): Promise> { return this.client.put( this.buildPath(workspaceId, changeSetId, `/${componentId}`), - data + data, ); } - + /** * Delete a component */ async deleteComponent( workspaceId: string, changeSetId: string, - componentId: string + componentId: string, ): Promise> { return this.client.delete( - this.buildPath(workspaceId, changeSetId, `/${componentId}`) + this.buildPath(workspaceId, changeSetId, `/${componentId}`), ); } - + /** * Execute a management function on a component */ @@ -238,14 +249,18 @@ export class ComponentsApi { workspaceId: string, changeSetId: string, componentId: string, - data: ExecuteManagementFunctionRequest + data: ExecuteManagementFunctionRequest, ): Promise> { return this.client.post( - this.buildPath(workspaceId, changeSetId, `/${componentId}/execute-management-function`), - data + this.buildPath( + workspaceId, + changeSetId, + `/${componentId}/execute-management-function`, + ), + data, ); } - + /** * Add an action to a component */ @@ -253,11 +268,11 @@ export class ComponentsApi { workspaceId: string, changeSetId: string, componentId: string, - data: AddActionRequest + data: AddActionRequest, ): Promise> { return this.client.post( this.buildPath(workspaceId, changeSetId, `/${componentId}/action`), - data + data, ); } -} \ No newline at end of file +} diff --git a/bin/si-luminork-api-tests/tests/components.test.ts b/bin/si-luminork-api-tests/tests/components.test.ts index 69b687c63e..6b2dcd3558 100644 --- a/bin/si-luminork-api-tests/tests/components.test.ts +++ b/bin/si-luminork-api-tests/tests/components.test.ts @@ -99,11 +99,13 @@ Deno.test("Components API - Create and Update Components", async () => { ); assertEquals(listComponentsResponse.status, 200); - assertExists(listComponentsResponse.data.components); + assertExists(listComponentsResponse.data.componentDetails); // Verify our component is in the list const isComponentInList = - listComponentsResponse.data.components.includes(componentId); + listComponentsResponse.data.componentDetails.some((c) => { + return c.componentId === componentId; + }); assertEquals( isComponentInList, true,