Skip to content

Commit 22b7119

Browse files
committed
added test
1 parent ce0682b commit 22b7119

File tree

1 file changed

+174
-44
lines changed

1 file changed

+174
-44
lines changed

src/app/components/options-sidebar/time-clock/time-clock.component.spec.ts

Lines changed: 174 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,6 @@ describe('TimeClockComponent', () => {
99
let fixture: ComponentFixture<TimeClockComponent>;
1010
let de: DebugElement;
1111

12-
function setup() {
13-
const fixture = TestBed.createComponent(TimeClockComponent);
14-
const app = fixture.debugElement.componentInstance;
15-
return { fixture, app };
16-
}
17-
1812
beforeEach(async(() => {
1913
TestBed.configureTestingModule({
2014
declarations: [TimeClockComponent, ProjectListHoverComponent]
@@ -32,14 +26,6 @@ describe('TimeClockComponent', () => {
3226
expect(component).toBeTruthy();
3327
});
3428

35-
it('should have p tag as \'Dario clocked out at 00:00:00\'', async(() => {
36-
const { fixture } = setup();
37-
fixture.detectChanges();
38-
const compile = fixture.debugElement.nativeElement;
39-
const ptag = compile.querySelector('p');
40-
expect(ptag.textContent).toBe('Dario clocked out at 00:00:00');
41-
}));
42-
4329
it('should set showfileds as true', () => {
4430
const show = true;
4531
component.setShowFields(show);
@@ -62,44 +48,188 @@ describe('TimeClockComponent', () => {
6248
expect(component.setShowFields).toHaveBeenCalledWith(true);
6349
});
6450

65-
it('should have button text as Options', async(() => {
66-
const { fixture } = setup();
67-
fixture.detectChanges();
68-
const x = document.getElementById('optionsContainer');
69-
const ptag = x.querySelector('button');
70-
expect(ptag.textContent).toBe(' Options ');
71-
}));
72-
73-
it('should set Clock In', () => {
74-
const { fixture } = setup();
75-
fixture.detectChanges();
76-
const x = document.getElementById('clockInOutContainer');
77-
const ptag = x.querySelector('button');
78-
expect(ptag.textContent).toBe('Clock In');
51+
/* ---------------------- EMPLOYE CLOCK IN ------------------------------------- */
52+
it('should be verify the init state of vars' , () => {
53+
expect(component.isClockIn).toBeTruthy();
54+
expect(component.isEnterTechnology).toBeFalsy();
55+
expect(component.showAlertEnterTecnology).toBeFalsy();
56+
expect(component.showFields).toBeFalsy();
57+
expect(component.execOnlyOneTimeCounter).toBeFalsy();
58+
expect(component.execOnlyOneTimeClockIn).toBeFalsy();
59+
expect(component.isClockInEnable).toBeFalsy();
60+
expect(component.isHidenForm).toBeTruthy();
61+
62+
expect(component.hourCounterRealTime).toEqual(0);
63+
expect(component.minuteCounterRealTime).toEqual(0);
64+
expect(component.secondsCounterRealTime).toEqual(0);
65+
66+
expect(component.hour).toEqual(0);
67+
expect(component.minute).toEqual(0);
68+
expect(component.seconds).toEqual(0);
69+
});
70+
71+
it('should be change state of isClockInEnale, isClockIn, isHidenForm when function is called' , () => {
72+
component.employeClockIn();
73+
expect(component.isClockInEnable).toBeTruthy();
74+
expect(component.isClockIn).toBeFalsy();
75+
});
76+
77+
it('the function should return false' , () => {
78+
expect(component.employeClockIn()).toEqual(false);
79+
});
80+
81+
it('should be called to intern methods of employeClockIn' , () => {
82+
spyOn(component, 'startTimer');
83+
spyOn(component, 'setArrivalAndDepartureTimes');
84+
85+
component.employeClockIn();
86+
87+
expect(component.startTimer).toHaveBeenCalled();
88+
expect(component.setArrivalAndDepartureTimes).toHaveBeenCalled();
89+
});
90+
91+
/* ---------------------- EMPLOYE CLOCK OUT ------------------------------------- */
92+
it('should enter if and assign the value to vars' , () => {
93+
component.isEnterTechnology = false;
94+
component.employeClockOut();
95+
expect(component.isClockIn).toBeFalsy();
96+
expect(component.showAlertEnterTecnology).toBeTruthy();
97+
});
98+
99+
it('should enter if and not called to intern methods' , () => {
100+
component.isEnterTechnology = false;
101+
spyOn(component, 'setDefaultValuesToFields');
102+
spyOn(component, 'pauseTimer');
103+
spyOn(component, 'setArrivalAndDepartureTimes');
104+
component.employeClockOut();
105+
expect(component.setDefaultValuesToFields).not.toHaveBeenCalled();
106+
expect(component.pauseTimer).not.toHaveBeenCalled();
107+
expect(component.setArrivalAndDepartureTimes).not.toHaveBeenCalled();
108+
109+
});
110+
111+
it('should enter else and execute internal methods' , () => {
112+
component.isEnterTechnology = true;
113+
114+
spyOn(component, 'setDefaultValuesToFields');
115+
spyOn(component, 'pauseTimer');
116+
spyOn(component, 'setArrivalAndDepartureTimes');
117+
118+
component.employeClockOut();
119+
120+
expect(component.setDefaultValuesToFields).toHaveBeenCalled();
121+
expect(component.pauseTimer).toHaveBeenCalled();
122+
expect(component.setArrivalAndDepartureTimes).toHaveBeenCalled();
123+
124+
});
125+
126+
/* ---------------------- ENTER TECHNOLOGY ------------------------------------- */
127+
it('should enter if and assign the value to var' , () => {
128+
const dataTechnology = 'Angular';
129+
component.enterTechnology(dataTechnology);
130+
expect(component.isEnterTechnology).toBeTruthy();
79131
});
80132

81-
it('should setVartToEmpty called', () => {
82-
spyOn(component, 'setDefaultValuesToFields');
83-
component.setDefaultValuesToFields();
84-
expect(component.setDefaultValuesToFields).toHaveBeenCalled();
133+
it('should enter else and assign the value to var ' , () => {
134+
const dataTechnology = '';
135+
component.enterTechnology(dataTechnology);
136+
expect(component.isEnterTechnology).toBeFalsy();
85137
});
86138

87-
it('should employeClockIn called', () => {
88-
spyOn(component, 'employeClockIn');
89-
component.employeClockIn();
90-
expect(component.employeClockIn).toHaveBeenCalled();
139+
/* ---------------------- SET SHOW FIELDS ------------------------------------- */
140+
it('should execute all internal methods' , () => {
141+
const show = true;
142+
component.isClockInEnable = false;
143+
component.execOnlyOneTimeCounter = false;
144+
145+
spyOn(component, 'startTimer');
146+
spyOn(component, 'setArrivalAndDepartureTimes');
147+
148+
component.setShowFields(show);
149+
150+
expect(component.isHidenForm).toBeFalsy();
151+
expect(component.isClockIn).toBeFalsy();
152+
expect(component.showFields).toEqual(show);
153+
expect(component.startTimer).toHaveBeenCalled();
154+
expect(component.execOnlyOneTimeCounter).toBeTruthy();
155+
expect(component.setArrivalAndDepartureTimes).toHaveBeenCalled();
91156
});
92157

93-
it('should employeClockOut called', () => {
94-
spyOn(component, 'employeClockOut');
95-
component.employeClockOut();
96-
expect(component.employeClockOut).toHaveBeenCalled();
158+
it('should not call nested if internal methods' , () => {
159+
const show = true;
160+
component.isClockInEnable = false;
161+
component.execOnlyOneTimeCounter = true;
162+
163+
spyOn(component, 'startTimer');
164+
spyOn(component, 'setArrivalAndDepartureTimes');
165+
166+
component.setShowFields(show);
167+
168+
expect(component.isHidenForm).toBeFalsy();
169+
expect(component.isClockIn).toBeFalsy();
170+
expect(component.showFields).toEqual(show);
171+
expect(component.startTimer).not.toHaveBeenCalled();
172+
expect(component.execOnlyOneTimeCounter).toBeTruthy();
173+
expect(component.setArrivalAndDepartureTimes).toHaveBeenCalled();
97174
});
98175

99-
it('should enterTechnolofy called', () => {
100-
spyOn(component, 'enterTechnology');
101-
component.enterTechnology('');
102-
expect(component.enterTechnology).toHaveBeenCalled();
176+
it('shouldn not execute any main if method' , () => {
177+
const show = true;
178+
component.isClockInEnable = true;
179+
component.execOnlyOneTimeCounter = true;
180+
181+
spyOn(component, 'startTimer');
182+
spyOn(component, 'setArrivalAndDepartureTimes');
183+
184+
component.setShowFields(show);
185+
186+
expect(component.isHidenForm).toBeFalsy();
187+
expect(component.isClockIn).toBeTruthy();
188+
expect(component.showFields).toEqual(undefined);
189+
expect(component.startTimer).not.toHaveBeenCalled();
190+
expect(component.execOnlyOneTimeCounter).toBeTruthy();
191+
expect(component.setArrivalAndDepartureTimes).not.toHaveBeenCalled();
103192
});
104193

194+
/* ---------------------- TIMER ------------------------------------- */
195+
it('should be var not equal to zero' , () => {
196+
component.timer();
197+
expect(component.secondsCounterRealTime).not.toEqual(0);
198+
});
199+
200+
/* ---------------------- ARRIVALS ------------------------------------- */
201+
it('should execute intern methods of arrivals' , () => {
202+
const currentDate = new Date();
203+
component.execOnlyOneTimeClockIn = false;
204+
component.setArrivalAndDepartureTimes();
205+
expect(component.hour).toEqual(currentDate.getHours());
206+
expect(component.minute).toEqual(currentDate.getMinutes());
207+
expect(component.seconds).toEqual(currentDate.getSeconds());
208+
expect(component.execOnlyOneTimeClockIn).toEqual(true);
209+
210+
});
211+
212+
it('should not execute intern methods of arrivals' , () => {
213+
component.execOnlyOneTimeClockIn = true;
214+
component.setArrivalAndDepartureTimes();
215+
expect(component.hour).toEqual(0);
216+
expect(component.minute).toEqual(0);
217+
expect(component.seconds).toEqual(0);
218+
expect(component.execOnlyOneTimeClockIn).toEqual(true);
219+
});
220+
221+
/* ---------------------- DEFAULT FIELDS ------------------------------------- */
222+
it('set values to empty' , () => {
223+
component.setDefaultValuesToFields();
224+
expect(component.isHidenForm).toBeTruthy();
225+
expect(component.isClockIn).toBeTruthy();
226+
expect(component.isEnterTechnology).toBeFalsy();
227+
expect(component.showAlertEnterTecnology).toBeFalsy();
228+
expect(component.execOnlyOneTimeClockIn).toBeFalsy();
229+
expect(component.execOnlyOneTimeCounter).toBeFalsy();
230+
expect(component.isClockInEnable).toBeFalsy();
231+
232+
});
105233
});
234+
235+

0 commit comments

Comments
 (0)