text: import Vue from 'vue';
  import loadingIcon from '~/vue_shared/components/loading_icon.vue';
  
  describe('Loading Icon Component', () => {
    let LoadingIconComponent;
  
    beforeEach(() => {
      LoadingIconComponent = Vue.extend(loadingIcon);
    });
  
    it('should render a spinner font awesome icon', () => {
      const component = new LoadingIconComponent().$mount();
  
      expect(
        component.$el.querySelector('i').getAttribute('class'),
      ).toEqual('fa fa-spin fa-spinner fa-1x');
  
      expect(component.$el.tagName).toEqual('DIV');
      expect(component.$el.classList).toContain('text-center');
      expect(component.$el.classList).toContain('loading-container');
    });
  
    it('should render accessibility attributes', () => {
      const component = new LoadingIconComponent().$mount();
  
      const icon = component.$el.querySelector('i');
      expect(icon.getAttribute('aria-hidden')).toEqual('true');
      expect(icon.getAttribute('aria-label')).toEqual('Loading');
    });
  
    it('should render the provided label', () => {
      const component = new LoadingIconComponent({
        propsData: {
          label: 'This is a loading icon',
        },
      }).$mount();
  
      expect(
        component.$el.querySelector('i').getAttribute('aria-label'),
      ).toEqual('This is a loading icon');
    });
  
    it('should render the provided size', () => {
      const component = new LoadingIconComponent({
        propsData: {
          size: '2',
        },
      }).$mount();
  
      expect(
        component.$el.querySelector('i').classList.contains('fa-2x'),
      ).toEqual(true);
    });
  });
  