Untitled

mail@pastecode.io avatar
unknown
plain_text
10 days ago
4.2 kB
3
Indexable
Never
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProgressBarModalComponent } from './progress-bar-modal.component';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { of, throwError } from 'rxjs';
import { UntypedFormBuilder } from '@angular/forms';
import { InterviewInfoService } from '../services/interview-info.service';
import { UtilsService } from '../services/utils.service';
import { ToasterService } from '../services/toaster.service';
import { SecondaryModalComponent } from '../secondary-modal/secondary-modal.component';
import { TechnologyDashboardModalComponent } from '../technology-dashboard-modal/technology-dashboard-modal.component';

describe('ProgressBarModalComponent', () => {
  let component: ProgressBarModalComponent;
  let fixture: ComponentFixture<ProgressBarModalComponent>;
  let mockMatDialogRef: jasmine.SpyObj<MatDialogRef<SecondaryModalComponent>>;
  let mockInterviewInfoService: jasmine.SpyObj<InterviewInfoService>;
  let mockUtilsService: jasmine.SpyObj<UtilsService>;
  let mockToasterService: jasmine.SpyObj<ToasterService>;

  beforeEach(async () => {
    mockMatDialogRef = jasmine.createSpyObj('MatDialogRef', ['close']);
    mockInterviewInfoService = jasmine.createSpyObj('InterviewInfoService', ['processEinterviewDashboardActivities']);
    mockUtilsService = jasmine.createSpyObj('UtilsService', []);
    mockToasterService = jasmine.createSpyObj('ToasterService', ['showToaster']);

    await TestBed.configureTestingModule({
      declarations: [ProgressBarModalComponent],
      providers: [
        { provide: MatDialogRef, useValue: mockMatDialogRef },
        { provide: MAT_DIALOG_DATA, useValue: {} },
        { provide: InterviewInfoService, useValue: mockInterviewInfoService },
        { provide: UtilsService, useValue: mockUtilsService },
        { provide: ToasterService, useValue: mockToasterService },
        UntypedFormBuilder
      ]
    }).compileComponents();
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(ProgressBarModalComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });

  describe('ngOnInit', () => {
    it('should initialize techObject and buttonOneText', () => {
      component.secondaryModalData = { techObject: { policyNo: '123' } };
      component.ngOnInit();
      expect(component.techObject).toEqual(component.secondaryModalData.techObject);
      expect(component.secondaryModalData.buttonOneText).toBe('Ok');
    });
  });

  describe('processTechnicalDashboardActivities', () => {
    it('should handle success response correctly', () => {
      const mockResponse = { data: { data: { isErrorMessage: false, message: 'Success' } } };
      mockInterviewInfoService.processEinterviewDashboardActivities.and.returnValue(of(mockResponse));
      component.techObject = { policyNo: '123', underId: '1', serviceName: 'service', policyType: 'policy' };

      component.processTechnicalDashboardActivities();

      expect(component.showProgressBar).toBeFalse();
      expect(mockToasterService.showToaster).toHaveBeenCalledWith('success', 'Success');
    });

    it('should handle error response correctly', () => {
      mockInterviewInfoService.processEinterviewDashboardActivities.and.returnValue(throwError('Error'));

      component.processTechnicalDashboardActivities();

      expect(component.showProgressBar).toBeFalse();
    });
  });

  describe('onSubmit', () => {
    it('should close the modal with event true', () => {
      component.onSubmit();
      expect(mockMatDialogRef.close).toHaveBeenCalledWith({ event: true });
    });
  });

  describe('onSecondaryModalClose', () => {
    it('should close the modal with event false', () => {
      component.onSecondaryModalClose();
      expect(mockMatDialogRef.close).toHaveBeenCalledWith({ event: false });
    });
  });

  describe('onCancel', () => {
    it('should close the modal with event cancel', () => {
      component.onCancel();
      expect(mockMatDialogRef.close).toHaveBeenCalledWith({ event: 'cancel' });
    });
  });
});
Leave a Comment