import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import { packageData } from 'jest/packages_and_registries/package_registry/mock_data'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; import NugetInstallation from '~/packages_and_registries/package_registry/components/details/nuget_installation.vue'; import { TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, PACKAGE_TYPE_NUGET, } from '~/packages_and_registries/package_registry/constants'; import CodeInstructions from '~/vue_shared/components/registry/code_instruction.vue'; const packageEntity = { ...packageData(), packageType: PACKAGE_TYPE_NUGET }; describe('NugetInstallation', () => { let wrapper; const nugetInstallationCommandStr = 'nuget install @gitlab-org/package-15 -Source "GitLab"'; const nugetSetupCommandStr = 'nuget source Add -Name "GitLab" -Source "nugetPath" -UserName -Password '; const findCodeInstructions = () => wrapper.findAllComponents(CodeInstructions); const findInstallationTitle = () => wrapper.findComponent(InstallationTitle); function createComponent() { wrapper = shallowMountExtended(NugetInstallation, { provide: { nugetHelpPath: 'nugetHelpPath', nugetPath: 'nugetPath', }, propsData: { packageEntity, }, }); } beforeEach(() => { createComponent(); }); afterEach(() => { wrapper.destroy(); }); it('renders all the messages', () => { expect(wrapper.element).toMatchSnapshot(); }); describe('install command switch', () => { it('has the installation title component', () => { expect(findInstallationTitle().exists()).toBe(true); expect(findInstallationTitle().props()).toMatchObject({ packageType: 'nuget', options: [{ value: 'nuget', label: 'Show Nuget commands' }], }); }); }); describe('installation commands', () => { it('renders the correct command', () => { expect(findCodeInstructions().at(0).props()).toMatchObject({ instruction: nugetInstallationCommandStr, trackingAction: TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, }); }); }); describe('setup commands', () => { it('renders the correct command', () => { expect(findCodeInstructions().at(1).props()).toMatchObject({ instruction: nugetSetupCommandStr, trackingAction: TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, }); }); }); });