Skip to content

Commit 7fc1ee8

Browse files
refactor(TeacherProjectService): Move moveObjectUp/Down to array.ts (#1885)
1 parent 3c05ed8 commit 7fc1ee8

File tree

8 files changed

+86
-78
lines changed

8 files changed

+86
-78
lines changed

src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Component } from '../../../assets/wise5/common/Component';
44
import { NotebookService } from '../../../assets/wise5/services/notebookService';
55
import { TeacherProjectService } from '../../../assets/wise5/services/teacherProjectService';
66
import { TeacherNodeService } from '../../../assets/wise5/services/teacherNodeService';
7+
import { moveObjectDown, moveObjectUp } from '../../../assets/wise5/common/array/array';
78

89
@Directive()
910
export abstract class EditAdvancedComponentComponent {
@@ -48,12 +49,12 @@ export abstract class EditAdvancedComponentComponent {
4849
}
4950

5051
moveObjectUp(objects: any[], index: number): void {
51-
this.teacherProjectService.moveObjectUp(objects, index);
52+
moveObjectUp(objects, index);
5253
this.componentChanged();
5354
}
5455

5556
moveObjectDown(objects: any[], index: number): void {
56-
this.teacherProjectService.moveObjectDown(objects, index);
57+
moveObjectDown(objects, index);
5758
this.componentChanged();
5859
}
5960
}

src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core';
22
import { Subject, Subscription } from 'rxjs';
33
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
44
import { TeacherProjectService } from '../../../../assets/wise5/services/teacherProjectService';
5+
import { moveObjectDown, moveObjectUp } from '../../../../assets/wise5/common/array/array';
56

67
@Component({
78
selector: 'edit-component-default-feedback',
@@ -37,12 +38,12 @@ export class EditComponentDefaultFeedback {
3738
}
3839

3940
moveDefaultFeedbackUp(index: number): void {
40-
this.ProjectService.moveObjectUp(this.componentContent.defaultFeedback, index);
41+
moveObjectUp(this.componentContent.defaultFeedback, index);
4142
this.componentChanged();
4243
}
4344

4445
moveDefaultFeedbackDown(index: number): void {
45-
this.ProjectService.moveObjectDown(this.componentContent.defaultFeedback, index);
46+
moveObjectDown(this.componentContent.defaultFeedback, index);
4647
this.componentChanged();
4748
}
4849

src/app/services/teacherProjectService.spec.ts

Lines changed: 8 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ let http: HttpTestingController;
1616
let demoProjectJSON: any;
1717
let scootersProjectJSON: any;
1818
let teacherProjectJSON: any;
19-
let objects;
2019

2120
const scootersProjectJSONString = JSON.stringify(demoProjectJSON_import);
2221
const scootersProjectName = 'scooters';
@@ -29,9 +28,14 @@ const wiseBaseURL = '/wise';
2928
describe('TeacherProjectService', () => {
3029
beforeEach(() => {
3130
TestBed.configureTestingModule({
32-
imports: [StudentTeacherCommonServicesModule],
33-
providers: [DeleteNodeService, TeacherProjectService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
34-
});
31+
imports: [StudentTeacherCommonServicesModule],
32+
providers: [
33+
DeleteNodeService,
34+
TeacherProjectService,
35+
provideHttpClient(withInterceptorsFromDi()),
36+
provideHttpClientTesting()
37+
]
38+
});
3539
http = TestBed.inject(HttpTestingController);
3640
service = TestBed.inject(TeacherProjectService);
3741
configService = TestBed.inject(ConfigService);
@@ -79,8 +83,6 @@ describe('TeacherProjectService', () => {
7983
getOldToNewIds();
8084
replaceOldIds();
8185
replaceIds();
82-
moveObjectUp();
83-
moveObjectDown();
8486
removeNodeIdFromTransitions();
8587
});
8688

@@ -750,54 +752,6 @@ function replaceIds() {
750752
});
751753
}
752754

753-
function moveObjectUp() {
754-
describe('moveObjectUp()', () => {
755-
beforeEach(() => {
756-
objects = [1, 2, 3];
757-
});
758-
moveObjectUpTopElement();
759-
moveObjectUpNotTopElement();
760-
});
761-
}
762-
763-
function moveObjectUpTopElement() {
764-
it('should not move an object up when the object is the top element', () => {
765-
service.moveObjectUp(objects, 0);
766-
expect(objects).toEqual([1, 2, 3]);
767-
});
768-
}
769-
770-
function moveObjectUpNotTopElement() {
771-
it('should move an object up when the object is not the top element', () => {
772-
service.moveObjectUp(objects, 1);
773-
expect(objects).toEqual([2, 1, 3]);
774-
});
775-
}
776-
777-
function moveObjectDown() {
778-
describe('moveObjectDown()', () => {
779-
beforeEach(() => {
780-
objects = [1, 2, 3];
781-
});
782-
moveObjectDownNotBottomElement();
783-
moveObjectDownIsBottomElement();
784-
});
785-
}
786-
787-
function moveObjectDownNotBottomElement() {
788-
it('should move an object down when the object is not the bottom element', () => {
789-
service.moveObjectDown(objects, 1);
790-
expect(objects).toEqual([1, 3, 2]);
791-
});
792-
}
793-
794-
function moveObjectDownIsBottomElement() {
795-
it('should not move an object down when the object is the bottom element', () => {
796-
service.moveObjectDown(objects, 2);
797-
expect(objects).toEqual([1, 2, 3]);
798-
});
799-
}
800-
801755
function removeNodeIdFromTransitions() {
802756
describe('removeNodeIdFromTransitions()', () => {
803757
beforeEach(() => {

src/assets/wise5/authoringTool/components/AbstractComponentAuthoring.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { ProjectAssetService } from '../../../../app/services/projectAssetServic
55
import { ConfigService } from '../../services/configService';
66
import { TeacherProjectService } from '../../services/teacherProjectService';
77
import { TeacherNodeService } from '../../services/teacherNodeService';
8+
import { moveObjectDown, moveObjectUp } from '../../common/array/array';
89

910
@Directive()
1011
export abstract class AbstractComponentAuthoring {
@@ -114,12 +115,12 @@ export abstract class AbstractComponentAuthoring {
114115
}
115116

116117
moveObjectUp(objects: any[], index: number): void {
117-
this.projectService.moveObjectUp(objects, index);
118+
moveObjectUp(objects, index);
118119
this.componentChanged();
119120
}
120121

121122
moveObjectDown(objects: any[], index: number): void {
122-
this.projectService.moveObjectDown(objects, index);
123+
moveObjectDown(objects, index);
123124
this.componentChanged();
124125
}
125126
}

src/assets/wise5/common/array/array.spec.ts

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { arraysContainSameValues, CSVToArray, reduceByUniqueId } from './array';
1+
import {
2+
arraysContainSameValues,
3+
CSVToArray,
4+
moveObjectDown,
5+
moveObjectUp,
6+
reduceByUniqueId
7+
} from './array';
28
import csvArraySample from './arraySample';
39
import { getIntersectOfArrays } from './array';
410

@@ -94,3 +100,48 @@ describe('reduceByUniqueId', () => {
94100
expect(result[2].id).toEqual(3);
95101
});
96102
});
103+
104+
let objects;
105+
describe('moveObjectUp()', () => {
106+
beforeEach(() => {
107+
objects = [1, 2, 3];
108+
});
109+
moveObjectUpTopElement();
110+
moveObjectUpNotTopElement();
111+
});
112+
113+
function moveObjectUpTopElement() {
114+
it('should not move an object up when the object is the top element', () => {
115+
moveObjectUp(objects, 0);
116+
expect(objects).toEqual([1, 2, 3]);
117+
});
118+
}
119+
120+
function moveObjectUpNotTopElement() {
121+
it('should move an object up when the object is not the top element', () => {
122+
moveObjectUp(objects, 1);
123+
expect(objects).toEqual([2, 1, 3]);
124+
});
125+
}
126+
127+
describe('moveObjectDown()', () => {
128+
beforeEach(() => {
129+
objects = [1, 2, 3];
130+
});
131+
moveObjectDownNotBottomElement();
132+
moveObjectDownIsBottomElement();
133+
});
134+
135+
function moveObjectDownNotBottomElement() {
136+
it('should move an object down when the object is not the bottom element', () => {
137+
moveObjectDown(objects, 1);
138+
expect(objects).toEqual([1, 3, 2]);
139+
});
140+
}
141+
142+
function moveObjectDownIsBottomElement() {
143+
it('should not move an object down when the object is the bottom element', () => {
144+
moveObjectDown(objects, 2);
145+
expect(objects).toEqual([1, 2, 3]);
146+
});
147+
}

src/assets/wise5/common/array/array.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,19 @@ export function reduceByUniqueId(objArr: any[]): any[] {
9595
}
9696
return result;
9797
}
98+
99+
export function moveObjectUp(objects: any[], index: number): void {
100+
if (index !== 0) {
101+
const object = objects[index];
102+
objects.splice(index, 1);
103+
objects.splice(index - 1, 0, object);
104+
}
105+
}
106+
107+
export function moveObjectDown(objects: any[], index: number): void {
108+
if (index !== objects.length - 1) {
109+
const object = objects[index];
110+
objects.splice(index, 1);
111+
objects.splice(index + 1, 0, object);
112+
}
113+
}

src/assets/wise5/services/teacherProjectService.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2902,22 +2902,6 @@ export class TeacherProjectService extends ProjectService {
29022902
this.projectSavedSource.next();
29032903
}
29042904

2905-
moveObjectUp(objects: any[], index: number): void {
2906-
if (index !== 0) {
2907-
const object = objects[index];
2908-
objects.splice(index, 1);
2909-
objects.splice(index - 1, 0, object);
2910-
}
2911-
}
2912-
2913-
moveObjectDown(objects: any[], index: number): void {
2914-
if (index !== objects.length - 1) {
2915-
const object = objects[index];
2916-
objects.splice(index, 1);
2917-
objects.splice(index + 1, 0, object);
2918-
}
2919-
}
2920-
29212905
getNodesInOrder(): any[] {
29222906
return Object.entries(this.idToOrder)
29232907
.map((entry: any) => {

src/messages.xlf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@
814814
<source>Are you sure you want to delete this default feedback?</source>
815815
<context-group purpose="location">
816816
<context context-type="sourcefile">src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts</context>
817-
<context context-type="linenumber">50</context>
817+
<context context-type="linenumber">51</context>
818818
</context-group>
819819
</trans-unit>
820820
<trans-unit id="45229448ecf72c5acf7c79694e3fee30466771e1" datatype="html">

0 commit comments

Comments
 (0)