From 751168f57273d9b4fa8d40abb90deb1db8ff00aa Mon Sep 17 00:00:00 2001 From: Edgar Guaman Date: Fri, 24 Sep 2021 10:29:31 -0500 Subject: [PATCH 1/2] fix: TT-354 solving bug in Add new activity button --- .../activity-list/activity-list.component.ts | 2 +- .../create-activity.component.html | 7 +++++- .../create-activity.component.spec.ts | 9 +++++++ .../create-activity.component.ts | 19 +++++++++++---- .../activities-management.component.html | 9 ++----- .../activities-management.component.spec.ts | 24 +------------------ .../pages/activities-management.component.ts | 18 +++----------- 7 files changed, 36 insertions(+), 52 deletions(-) diff --git a/src/app/modules/activities-management/components/activity-list/activity-list.component.ts b/src/app/modules/activities-management/components/activity-list/activity-list.component.ts index 3da790a52..cf17b21f6 100644 --- a/src/app/modules/activities-management/components/activity-list/activity-list.component.ts +++ b/src/app/modules/activities-management/components/activity-list/activity-list.component.ts @@ -14,8 +14,8 @@ import { ActivityState } from './../../store/activity-management.reducers'; styleUrls: ['./activity-list.component.scss'], }) export class ActivityListComponent implements OnInit { - @Input() showActivityForm: boolean; @Output() changeValueShowActivityForm = new EventEmitter(); + showActivityForm: boolean; constructor(private store: Store) { this.isLoading$ = store.pipe(delay(0), select(getIsLoading)); diff --git a/src/app/modules/activities-management/components/create-activity/create-activity.component.html b/src/app/modules/activities-management/components/create-activity/create-activity.component.html index 6af39d04d..a714502bd 100644 --- a/src/app/modules/activities-management/components/create-activity/create-activity.component.html +++ b/src/app/modules/activities-management/components/create-activity/create-activity.component.html @@ -1,5 +1,10 @@
-
+
+
+ +
+
+
diff --git a/src/app/modules/activities-management/components/create-activity/create-activity.component.spec.ts b/src/app/modules/activities-management/components/create-activity/create-activity.component.spec.ts index 7629e0c67..856933e15 100644 --- a/src/app/modules/activities-management/components/create-activity/create-activity.component.spec.ts +++ b/src/app/modules/activities-management/components/create-activity/create-activity.component.spec.ts @@ -10,6 +10,7 @@ import { activityIdToEdit, allActivities, ResetActivityToEdit, + SetActivityToEdit, } from '../../store'; import { getActivityById } from '../../store/activity-management.selectors'; import { Activity } from 'src/app/modules/shared/models'; @@ -151,4 +152,12 @@ describe('CreateActivityComponent', () => { expect(store.dispatch).toHaveBeenCalledTimes(1); expect(store.dispatch).toHaveBeenCalledWith(new ResetActivityToEdit()); }); + + it('should dispatch an action on activateActivityForm', () => { + spyOn(store, 'dispatch'); + + component.activateActivityForm(); + + expect(store.dispatch).toHaveBeenCalledWith(new SetActivityToEdit(null)); + }); }); diff --git a/src/app/modules/activities-management/components/create-activity/create-activity.component.ts b/src/app/modules/activities-management/components/create-activity/create-activity.component.ts index af4b2d8c6..2383e8352 100644 --- a/src/app/modules/activities-management/components/create-activity/create-activity.component.ts +++ b/src/app/modules/activities-management/components/create-activity/create-activity.component.ts @@ -1,9 +1,9 @@ import { FormBuilder, Validators, FormGroup } from '@angular/forms'; -import { Component, EventEmitter, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { Store, select } from '@ngrx/store'; import { Activity } from '../../../shared/models'; import { ActivityState } from './../../store/activity-management.reducers'; -import { CreateActivity, UpdateActivity, getActivityById, ResetActivityToEdit } from '../../store'; +import { CreateActivity, UpdateActivity, getActivityById, ResetActivityToEdit, SetActivityToEdit } from '../../store'; @Component({ selector: 'app-create-activity', @@ -11,7 +11,8 @@ import { CreateActivity, UpdateActivity, getActivityById, ResetActivityToEdit } styleUrls: ['./create-activity.component.scss'], }) export class CreateActivityComponent implements OnInit { - @Output() closeActivityForm = new EventEmitter(); + @Input() showActivityForm: boolean; + @Output() changeValueShowActivityForm = new EventEmitter(); activityForm: FormGroup; activityToEdit: Activity; constructor(private formBuilder: FormBuilder, private store: Store) { @@ -59,12 +60,20 @@ export class CreateActivityComponent implements OnInit { this.store.dispatch(new CreateActivity(activityData)); this.activityForm.get('description').setValue(''); } - this.closeActivityForm.emit(false); + this.showActivityForm = false; + this.changeValueShowActivityForm.emit(this.showActivityForm); } cancelButton() { this.activityForm.reset(); this.store.dispatch(new ResetActivityToEdit()); - this.closeActivityForm.emit(false); + this.showActivityForm = false; + this.changeValueShowActivityForm.emit(this.showActivityForm); + } + + activateActivityForm() { + this.store.dispatch(new SetActivityToEdit(null)); + this.showActivityForm = true; + this.activityForm.reset(); } } diff --git a/src/app/modules/activities-management/pages/activities-management.component.html b/src/app/modules/activities-management/pages/activities-management.component.html index 9abbb4cfc..38dc2ff0d 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.html +++ b/src/app/modules/activities-management/pages/activities-management.component.html @@ -1,12 +1,7 @@
-
-
- -
-
-
+
+ [showActivityForm]="showActivityForm" (changeValueShowActivityForm)="showActivityForm = $event">
diff --git a/src/app/modules/activities-management/pages/activities-management.component.spec.ts b/src/app/modules/activities-management/pages/activities-management.component.spec.ts index af4ae32cc..92f8a918a 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.spec.ts +++ b/src/app/modules/activities-management/pages/activities-management.component.spec.ts @@ -1,19 +1,14 @@ import { waitForAsync, TestBed, ComponentFixture } from '@angular/core/testing'; -import { MockStore, provideMockStore } from '@ngrx/store/testing'; import { ActivitiesManagementComponent } from './activities-management.component'; -import { SetActivityToEdit } from '../store'; -import { Activity } from '../../shared/models'; describe('ActivitiesManagementComponent', () => { let component: ActivitiesManagementComponent; let fixture: ComponentFixture; - let store: MockStore; beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [], - declarations: [ActivitiesManagementComponent], - providers: [provideMockStore({ initialState: {} })], + declarations: [ActivitiesManagementComponent] }).compileComponents(); })); @@ -21,26 +16,9 @@ describe('ActivitiesManagementComponent', () => { fixture = TestBed.createComponent(ActivitiesManagementComponent); component = fixture.componentInstance; fixture.detectChanges(); - store = TestBed.inject(MockStore); }); it('should create the component', () => { expect(component).toBeTruthy(); }); - - it('should dispatch an action on activateActivityForm', () => { - spyOn(store, 'dispatch'); - - component.activateActivityForm(); - - expect(store.dispatch).toHaveBeenCalledWith(new SetActivityToEdit(null)); - }); - - it('should call closeActivityForm function', () => { - component.closeFormActivity(false); - - expect(component.showActivityForm).toBe(false); - }); - - }); diff --git a/src/app/modules/activities-management/pages/activities-management.component.ts b/src/app/modules/activities-management/pages/activities-management.component.ts index 1c8ef9676..6d2b09469 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.ts +++ b/src/app/modules/activities-management/pages/activities-management.component.ts @@ -1,24 +1,12 @@ -import { Component, EventEmitter, Output } from '@angular/core'; -import { Store } from '@ngrx/store'; -import { Activity } from '../../shared/models'; -import { SetActivityToEdit } from '../store'; - +import { Component, Input } from '@angular/core'; @Component({ selector: 'app-activities-management', templateUrl: './activities-management.component.html', styleUrls: ['./activities-management.component.scss'], }) export class ActivitiesManagementComponent { - @Output() closeActivityForm = new EventEmitter(); - showActivityForm = false; - constructor(private store: Store) {} + @Input() showActivityForm: boolean; - activateActivityForm() { - this.store.dispatch(new SetActivityToEdit(null)); - this.showActivityForm = true; - } + constructor() {} - closeFormActivity(event) { - this.showActivityForm = event; - } } From fa9d98e0268c89ea71a3c90e239f4deae39c020b Mon Sep 17 00:00:00 2001 From: Edgar Guaman Date: Fri, 24 Sep 2021 10:56:45 -0500 Subject: [PATCH 2/2] code-smell: TT-354 Fix code smells --- .../components/activity-list/activity-list.component.ts | 2 +- .../pages/activities-management.component.ts | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/app/modules/activities-management/components/activity-list/activity-list.component.ts b/src/app/modules/activities-management/components/activity-list/activity-list.component.ts index cf17b21f6..3da081cf7 100644 --- a/src/app/modules/activities-management/components/activity-list/activity-list.component.ts +++ b/src/app/modules/activities-management/components/activity-list/activity-list.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, OnInit, Output } from '@angular/core'; import { select, Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { delay, map } from 'rxjs/operators'; diff --git a/src/app/modules/activities-management/pages/activities-management.component.ts b/src/app/modules/activities-management/pages/activities-management.component.ts index 6d2b09469..f4afde3cd 100644 --- a/src/app/modules/activities-management/pages/activities-management.component.ts +++ b/src/app/modules/activities-management/pages/activities-management.component.ts @@ -6,7 +6,4 @@ import { Component, Input } from '@angular/core'; }) export class ActivitiesManagementComponent { @Input() showActivityForm: boolean; - - constructor() {} - }