fix(editor): Ensure community node install button tracks user agreement (#6976)

https://share.cleanshot.com/2rlsnTpf
This commit is contained in:
Iván Ovejero
2023-08-22 15:58:23 +02:00
committed by GitHub
parent 96a9de68a0
commit 0ddfc73bee
2 changed files with 58 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
import { createComponentRenderer } from '@/__tests__/render';
import CommunityPackageInstallModal from '../CommunityPackageInstallModal.vue';
import { createTestingPinia } from '@pinia/testing';
import { COMMUNITY_PACKAGE_INSTALL_MODAL_KEY, STORES } from '@/constants';
import userEvent from '@testing-library/user-event';
import { retry } from '@/__tests__/utils';
const renderComponent = createComponentRenderer(CommunityPackageInstallModal, {
props: {
appendToBody: false,
},
data() {
return {
packageName: 'n8n-nodes-hello',
};
},
pinia: createTestingPinia({
initialState: {
[STORES.UI]: {
modals: {
[COMMUNITY_PACKAGE_INSTALL_MODAL_KEY]: { open: true },
},
},
[STORES.SETTINGS]: {
settings: {
templates: {
host: '',
},
},
},
},
}),
});
describe('CommunityPackageInstallModal', () => {
it('should disable install button until user agrees', async () => {
const wrapper = renderComponent();
await retry(() =>
expect(wrapper.container.querySelector('.modal-content')).toBeInTheDocument(),
);
const installButton = wrapper.getByTestId('install-community-package-button');
expect(installButton).toBeDisabled();
await userEvent.click(wrapper.getByTestId('user-agreement-checkbox'));
expect(installButton).toBeEnabled();
await userEvent.click(wrapper.getByTestId('user-agreement-checkbox'));
expect(installButton).toBeDisabled();
});
});