/*! Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0 */
import * as stories from './index.stories';
import { MOCK_API_CLIENT as API } from '@ada/api-client/mock';
import { LL } from '@ada/strings';
import { act, render, screen, waitFor } from '@testing-library/react';
import { composeStories } from '@storybook/testing-react';
import { delay } from '$common/utils';
jest.retryTimes(3);
jest.setTimeout(30000);
jest.mock('@ada/api-client');
const { Primary, Coverage, DeleteSavedQueries } = composeStories(stories);
describe('QueryWorkBench', () => {
it('primary', async () => {
API.listApiAccessPolicies.mockResolvedValue({
policies: [{ apiAccessPolicyId: 'read-only', name: 'Read Only', resources: ['read*'] }],
});
const { findAllByText, container } = render();
expect(container).toBeDefined();
await act(async () => {
await Primary.play({ canvasElement: container });
});
expect((await findAllByText(LL.VIEW.QUERY.title())).length).toBeGreaterThan(0);
expect((await findAllByText(LL.VIEW.QUERY.subtitle())).length).toBeGreaterThan(0);
expect((await findAllByText(LL.VIEW.QUERY.RESULTS.title())).length).toBeGreaterThan(0);
expect((await findAllByText(LL.VIEW.QUERY.RESULTS.emptyText())).length).toBeGreaterThan(0);
});
it('coverage', async () => {
const { container } = render();
expect(container).toBeDefined();
await act(async () => {
await Coverage.play({ canvasElement: container });
});
await waitFor(async () => {
return expect((await screen.findAllByText(LL.VIEW.QUERY.ACTIONS.save.text())).length).toBeGreaterThan(0);
});
});
it.skip('deleteSavedQueries', async () => {
const { container } = render();
expect(container).toBeDefined();
await act(async () => {
await DeleteSavedQueries.play({ canvasElement: container });
});
await act(async () => {
await delay(100);
});
await waitFor(async () => {
return expect((await screen.findAllByText(LL.ENTITY.SavedQuery__DELETED('test'))).length).toBeGreaterThan(0);
});
});
});