Skip to content
Snippets Groups Projects
Select Git revision
  • 39de99511fb859b4a9aa16ad1bd9d80edcbe591c
  • main default protected
  • dev protected
  • Issue/3090-tosProblems
  • Issue/3178-iconColorBug
  • Issue/3176-addNewNFDI4INGLogo
  • Issue/3141-rdsNoLonga
  • Issue/3180-fixMetadataNotLoading
  • Issue/3177-resourceTypeDescriptionTexts
  • Issue/3160-deactivateDownloadForFolders
  • Issue/3111-fixLoadingGitLabResource
  • Issue/3133-subProjectsChanges
  • Issue/3139-dsnrw
  • Issue/3167-changeTextAndAddLink
  • Issue/3070-newIconsForResourceTypes
  • Issue/3145-redesignLoginPage
  • Issue/3093-moreInformationInTheDeletionEmails
  • Issue/3040-closeTokenWindowWithXButton
  • Issue/3152-fixResourceStore
  • Issue/xxxx-DuckDBTest
  • Issue/3152-fixUpdateRequestPayload
  • v3.19.1
  • v3.19.0
  • v3.18.0
  • v3.17.2
  • v3.17.1
  • v3.17.0
  • v3.16.1
  • v3.16.0
  • v3.15.6
  • v3.15.5
  • v3.15.4
  • v3.15.3
  • v3.15.2
  • v3.15.1
  • v3.15.0
  • v3.14.0
  • v3.13.1
  • v3.13.0
  • v3.12.0
  • v3.11.0
41 results

ConfigurationMetadata.spec.ts

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ConfigurationMetadata.spec.ts 2.43 KiB
    /* Testing imports */
    import { createLocalVue, mount } from "@vue/test-utils";
    import { createTestingPinia } from "@pinia/testing";
    
    /* Vue i18n */
    import i18n, { def } from "@/plugins/vue-i18n";
    import { ProjectI18nMessages } from "@/modules/project/i18n/index";
    i18n.availableLocales.forEach((locale) => {
      i18n.setLocaleMessage(locale, def[locale]); // default locale messages
      i18n.mergeLocaleMessage(locale, ProjectI18nMessages[locale]); // append the locale messages for the component
    });
    
    /* Pinia */
    import { PiniaVuePlugin } from "pinia";
    
    /* Additional Dependencies */
    
    /* Tested Component */
    import ConfigurationMetadata from "./ConfigurationMetadata.vue";
    import type Vue from "vue";
    
    /* Import of relevant mockup data */
    import { testProjectState } from "@/data/mockup/testProject";
    import { getTestShibbolethUserState } from "@/data/mockup/testUser";
    
    /* Create a local Vue instance */
    const localVue = createLocalVue();
    localVue.use(PiniaVuePlugin);
    
    describe("ConfigurationMetadata.vue", () => {
      /* Describe Pre-initialization steps */
    
      /* Description of the test */
      test("Should enable buttons and update project name", async () => {
        /* Test Pre-initialization steps */
    
        /* Mount the Component */
        const wrapper = mount(ConfigurationMetadata as unknown as typeof Vue, {
          pinia: createTestingPinia({
            createSpy: vitest.fn,
            initialState: {
              project: testProjectState,
              user: getTestShibbolethUserState(),
            },
          }),
          i18n,
          localVue,
        });
    
        // Check initial state of buttons
        expect(
          (wrapper.get("#DeleteProjectBtn").element as HTMLButtonElement).disabled
        ).toBeFalsy(); // Delete button - active
        expect(
          (wrapper.get("#SubmitProjectBtn").element as HTMLButtonElement).disabled
        ).toBeTruthy(); // Submit button - disabled
    
        await wrapper.vm.$nextTick();
    
        // Find element (Project Name)
        const element = wrapper.get("#ProjectName");
        expect(element.exists()).toBeTruthy();
    
        // Change value of element
        await element.setValue("New Test Project");
        expect(wrapper.vm.$data.projectForUpdate.name).toBe("New Test Project");
    
        // Buttons should be enabled
        expect(
          (wrapper.get("#DeleteProjectBtn").element as HTMLButtonElement).disabled
        ).toBeFalsy(); // Delete button - active
        expect(
          (wrapper.get("#SubmitProjectBtn").element as HTMLButtonElement).disabled
        ).toBeFalsy(); // Submit button - active
      });
    });