chore: reworking the api to wrap up in an object
Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
@@ -347,7 +347,7 @@ describe('api', () => {
|
||||
}),
|
||||
);
|
||||
|
||||
const result = await apiClient.listTasks('all');
|
||||
const result = await apiClient.listTasks({ createdBy: 'all' });
|
||||
expect(result).toHaveLength(2);
|
||||
});
|
||||
it('should list task using the current user as owner', async () => {
|
||||
@@ -382,7 +382,7 @@ describe('api', () => {
|
||||
userEntityRef: 'user:default/foo',
|
||||
});
|
||||
|
||||
const result = await apiClient.listTasks('owned');
|
||||
const result = await apiClient.listTasks({ createdBy: 'owned' });
|
||||
expect(identityApi.getBackstageIdentity).toBeCalled();
|
||||
expect(result).toHaveLength(1);
|
||||
});
|
||||
|
||||
@@ -76,12 +76,14 @@ export class ScaffolderClient implements ScaffolderApi {
|
||||
this.identityApi = options.identityApi;
|
||||
}
|
||||
|
||||
async listTasks(createdBy: TasksOwnerFilterKind): Promise<ScaffolderTask[]> {
|
||||
async listTasks(options: {
|
||||
createdBy: TasksOwnerFilterKind;
|
||||
}): Promise<ScaffolderTask[]> {
|
||||
const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
|
||||
const { userEntityRef } = await this.identityApi.getBackstageIdentity();
|
||||
|
||||
const query = queryString.stringify(
|
||||
createdBy === 'owned' ? { createdBy: userEntityRef } : {},
|
||||
options.createdBy === 'owned' ? { createdBy: userEntityRef } : {},
|
||||
);
|
||||
|
||||
const url = `${baseUrl}/v2/tasks?${query}`;
|
||||
|
||||
@@ -41,7 +41,7 @@ describe('<ListTasksPage />', () => {
|
||||
signOut: jest.fn(),
|
||||
};
|
||||
|
||||
const scaffolderApiMock: jest.Mocked<ScaffolderApi> = {
|
||||
const scaffolderApiMock: jest.Mocked<Required<ScaffolderApi>> = {
|
||||
scaffold: jest.fn(),
|
||||
getTemplateParameterSchema: jest.fn(),
|
||||
listTasks: jest.fn(),
|
||||
@@ -139,7 +139,7 @@ describe('<ListTasksPage />', () => {
|
||||
},
|
||||
);
|
||||
|
||||
expect(scaffolderApiMock.listTasks).toBeCalledWith('owned');
|
||||
expect(scaffolderApiMock.listTasks).toBeCalledWith({ createdBy: 'owned' });
|
||||
expect(getByText('List template tasks')).toBeInTheDocument();
|
||||
expect(getByText('All tasks that have been started')).toBeInTheDocument();
|
||||
expect(getByText('Tasks')).toBeInTheDocument();
|
||||
@@ -171,6 +171,7 @@ describe('<ListTasksPage />', () => {
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
scaffolderApiMock.listTasks
|
||||
.mockResolvedValue([
|
||||
{
|
||||
@@ -231,7 +232,7 @@ describe('<ListTasksPage />', () => {
|
||||
fireEvent.click(allButton);
|
||||
});
|
||||
|
||||
expect(scaffolderApiMock.listTasks).toBeCalledWith('all');
|
||||
expect(scaffolderApiMock.listTasks).toBeCalledWith({ createdBy: 'all' });
|
||||
expect(await findByText('One Template')).toBeInTheDocument();
|
||||
expect(await findByText('OtherUser')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
@@ -50,10 +50,17 @@ const ListTaskPageContent = (props: MyTaskPageProps) => {
|
||||
const rootLink = useRouteRef(rootRouteRef);
|
||||
|
||||
const [ownerFilter, setOwnerFilter] = useState(initiallySelectedFilter);
|
||||
const { value, loading, error } = useAsync(
|
||||
() => scaffolderApi.listTasks(ownerFilter),
|
||||
[scaffolderApi, ownerFilter],
|
||||
);
|
||||
const { value, loading, error } = useAsync(() => {
|
||||
if (scaffolderApi.listTasks) {
|
||||
return scaffolderApi.listTasks?.({ createdBy: ownerFilter });
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(
|
||||
'listTasks is not implemented in the scaffolderApi, please make sure to implement this method.',
|
||||
);
|
||||
return Promise.resolve([]);
|
||||
}, [scaffolderApi, ownerFilter]);
|
||||
|
||||
if (loading) {
|
||||
return <Progress />;
|
||||
|
||||
@@ -178,7 +178,11 @@ export interface ScaffolderApi {
|
||||
|
||||
getTask(taskId: string): Promise<ScaffolderTask>;
|
||||
|
||||
listTasks?(createdBy: TasksOwnerFilterKind): Promise<ScaffolderTask[]>;
|
||||
listTasks?({
|
||||
createdBy,
|
||||
}: {
|
||||
createdBy: TasksOwnerFilterKind;
|
||||
}): Promise<ScaffolderTask[]>;
|
||||
|
||||
getIntegrationsList(
|
||||
options: ScaffolderGetIntegrationsListOptions,
|
||||
|
||||
Reference in New Issue
Block a user