text: import { GlBanner } from '@gitlab/ui';
  import { shallowMount } from '@vue/test-utils';
  import { setCookie, parseBoolean } from '~/lib/utils/common_utils';
  import TerraformNotification from '~/projects/terraform_notification/components/terraform_notification.vue';
  
  jest.mock('~/lib/utils/common_utils');
  
  const bannerDissmisedKey = 'terraform_notification_dismissed_for_project_1';
  
  describe('TerraformNotificationBanner', () => {
    let wrapper;
  
    const propsData = {
      projectId: 1,
    };
    const findBanner = () => wrapper.findComponent(GlBanner);
  
    beforeEach(() => {
      wrapper = shallowMount(TerraformNotification, {
        propsData,
        stubs: { GlBanner },
      });
    });
  
    afterEach(() => {
      wrapper.destroy();
      parseBoolean.mockReturnValue(false);
    });
  
    describe('when the dismiss cookie is set', () => {
      beforeEach(() => {
        parseBoolean.mockReturnValue(true);
        wrapper = shallowMount(TerraformNotification, {
          propsData,
        });
      });
  
      it('should not render the banner', () => {
        expect(findBanner().exists()).toBe(false);
      });
    });
  
    describe('when the dismiss cookie is not set', () => {
      it('should render the banner', () => {
        expect(findBanner().exists()).toBe(true);
      });
    });
  
    describe('when close button is clicked', () => {
      beforeEach(async () => {
        await findBanner().vm.$emit('close');
      });
  
      it('should set the cookie with the bannerDissmisedKey', () => {
        expect(setCookie).toHaveBeenCalledWith(bannerDissmisedKey, true);
      });
  
      it('should remove the banner', () => {
        expect(findBanner().exists()).toBe(false);
      });
    });
  });
  