mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
fix(editor): Ensure community node install button tracks user agreement (#6976)
https://share.cleanshot.com/2rlsnTpf
This commit is contained in:
parent
96a9de68a0
commit
0ddfc73bee
|
@ -61,6 +61,7 @@
|
||||||
:class="[$style.checkbox, checkboxWarning ? $style.error : '', 'mt-l']"
|
:class="[$style.checkbox, checkboxWarning ? $style.error : '', 'mt-l']"
|
||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
@update:modelValue="onCheckboxChecked"
|
@update:modelValue="onCheckboxChecked"
|
||||||
|
data-test-id="user-agreement-checkbox"
|
||||||
>
|
>
|
||||||
<n8n-text>
|
<n8n-text>
|
||||||
{{ $locale.baseText('settings.communityNodes.installModal.checkbox.label') }} </n8n-text
|
{{ $locale.baseText('settings.communityNodes.installModal.checkbox.label') }} </n8n-text
|
||||||
|
@ -74,7 +75,7 @@
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<n8n-button
|
<n8n-button
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:disabled="packageName === '' || loading"
|
:disabled="!userAgreed || packageName === '' || loading"
|
||||||
:label="
|
:label="
|
||||||
loading
|
loading
|
||||||
? $locale.baseText('settings.communityNodes.installModal.installButton.label.loading')
|
? $locale.baseText('settings.communityNodes.installModal.installButton.label.loading')
|
||||||
|
@ -83,6 +84,7 @@
|
||||||
size="large"
|
size="large"
|
||||||
float="right"
|
float="right"
|
||||||
@click="onInstallClick"
|
@click="onInstallClick"
|
||||||
|
data-test-id="install-community-package-button"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
|
@ -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();
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in a new issue