Skip to content

Commit

Permalink
Merge branch 'develop' into refactor-teacherProjectService-createComp…
Browse files Browse the repository at this point in the history
…onent
  • Loading branch information
hirokiterashima committed Aug 22, 2024
2 parents c00fa00 + 2560488 commit 2cd9a58
Show file tree
Hide file tree
Showing 31 changed files with 767 additions and 641 deletions.
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"@stomp/rx-stomp": "^1.1.4",
"@stomp/stompjs": "^5.4.4",
"@tinymce/tinymce-angular": "^7.0.0",
"@wise-community/drawing-tool": "^2.3.0-pre.1",
"@wise-community/drawing-tool": "^2.3.2",
"@zxcvbn-ts/core": "^3.0.4",
"@zxcvbn-ts/language-en": "^3.0.2",
"@wise-community/angular-password-strength-meter": "^12.0.4",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export class SelectComponentComponent {
if (numAllowedComponents === 1) {
this.componentId = allowedComponent.id;
this.componentChanged();
} else {
} else if (!this.components.map((component) => component.id).includes(this.componentId)) {
this.componentId = null;
}
}
Expand Down
14 changes: 11 additions & 3 deletions src/app/services/deleteNodeService.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { TeacherProjectService } from '../../assets/wise5/services/teacherProjec
import { StudentTeacherCommonServicesModule } from '../student-teacher-common-services.module';
import demoProjectJSON_import from './sampleData/curriculum/Demo.project.json';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { RemoveNodeIdFromTransitionsService } from '../../assets/wise5/services/removeNodeIdFromTransitionsService';

let demoProjectJSON: any;
let projectService: TeacherProjectService;
Expand All @@ -15,9 +16,16 @@ let service: DeleteNodeService;
describe('DeleteNodeService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [StudentTeacherCommonServicesModule],
providers: [CopyNodesService, DeleteNodeService, TeacherProjectService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
});
imports: [StudentTeacherCommonServicesModule],
providers: [
CopyNodesService,
DeleteNodeService,
RemoveNodeIdFromTransitionsService,
TeacherProjectService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting()
]
});
demoProjectJSON = copy(demoProjectJSON_import);
projectService = TestBed.inject(TeacherProjectService);
service = TestBed.inject(DeleteNodeService);
Expand Down
13 changes: 10 additions & 3 deletions src/app/services/moveNodesService.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { MoveNodesService } from '../../assets/wise5/services/moveNodesService';
import { copy } from '../../assets/wise5/common/object/object';
import demoProjectJSON_import from './sampleData/curriculum/Demo.project.json';
import { TeacherProjectService } from '../../assets/wise5/services/teacherProjectService';
import { RemoveNodeIdFromTransitionsService } from '../../assets/wise5/services/removeNodeIdFromTransitionsService';
import { StudentTeacherCommonServicesModule } from '../student-teacher-common-services.module';
import { provideHttpClientTesting } from '@angular/common/http/testing';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
Expand All @@ -16,9 +17,15 @@ let teacherProjectService: TeacherProjectService;
describe('MoveNodesService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [StudentTeacherCommonServicesModule],
providers: [MoveNodesService, TeacherProjectService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
});
imports: [StudentTeacherCommonServicesModule],
providers: [
MoveNodesService,
RemoveNodeIdFromTransitionsService,
TeacherProjectService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting()
]
});
service = TestBed.inject(MoveNodesService);
demoProjectJSON = copy(demoProjectJSON_import);
teacherProjectService = TestBed.inject(TeacherProjectService);
Expand Down
7 changes: 3 additions & 4 deletions src/app/services/projectService.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ let twoLessonsProjectJSON: any;
describe('ProjectService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [StudentTeacherCommonServicesModule],
providers: [provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
});
imports: [StudentTeacherCommonServicesModule],
providers: [provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
});
http = TestBed.inject(HttpTestingController);
configService = TestBed.inject(ConfigService);
service = TestBed.inject(ProjectService);
Expand Down Expand Up @@ -89,7 +89,6 @@ describe('ProjectService', () => {
// MARK: Tests for Node and Group Id functions
// TODO: add test for service.getNodePositionAndTitle()
// TODO: add test for service.deconsteNode()
// TODO: add test for service.removeNodeIdFromTransitions()
// TODO: add test for service.removeNodeIdFromGroups()
// TODO: add test for service.createComponent()
// TODO: add test for service.addComponentToNode()
Expand Down
38 changes: 38 additions & 0 deletions src/app/services/removeNodeIdFromTransitionsService.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { TestBed } from '@angular/core/testing';
import { StudentTeacherCommonServicesModule } from '../student-teacher-common-services.module';
import { TeacherProjectService } from '../../assets/wise5/services/teacherProjectService';
import { RemoveNodeIdFromTransitionsService } from '../../assets/wise5/services/removeNodeIdFromTransitionsService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import demoProjectJSON_import from './sampleData/curriculum/Demo.project.json';
import { copy } from '../../assets/wise5/common/object/object';

let demoProjectJSON: any;
let projectService: TeacherProjectService;
let service: RemoveNodeIdFromTransitionsService;
describe('RemoveNodeIdFromTransitionsService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [StudentTeacherCommonServicesModule],
providers: [
RemoveNodeIdFromTransitionsService,
TeacherProjectService,
provideHttpClient(withInterceptorsFromDi())
]
});
demoProjectJSON = copy(demoProjectJSON_import);
projectService = TestBed.inject(TeacherProjectService);
service = TestBed.inject(RemoveNodeIdFromTransitionsService);
});
shouldRemoveTransitionsGoingOutOfGroupInChildNodesOfGroup();
});

function shouldRemoveTransitionsGoingOutOfGroupInChildNodesOfGroup() {
it('should remove transitions going out of group in child nodes of group', () => {
projectService.setProject(demoProjectJSON);
expect(projectService.getTransitionsByFromNodeId('node18').length).toEqual(1);
expect(projectService.getTransitionsByFromNodeId('node19').length).toEqual(1);
service.removeTransitionsOutOfGroup('group1');
expect(projectService.getTransitionsByFromNodeId('node18').length).toEqual(1);
expect(projectService.getTransitionsByFromNodeId('node19').length).toEqual(0);
});
}
14 changes: 2 additions & 12 deletions src/app/services/teacherProjectService.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { StudentTeacherCommonServicesModule } from '../student-teacher-common-se
import { copy } from '../../assets/wise5/common/object/object';
import { DeleteNodeService } from '../../assets/wise5/services/deleteNodeService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { RemoveNodeIdFromTransitionsService } from '../../assets/wise5/services/removeNodeIdFromTransitionsService';
let service: TeacherProjectService;
let configService: ConfigService;
let deleteNodeService: DeleteNodeService;
Expand All @@ -31,6 +32,7 @@ describe('TeacherProjectService', () => {
imports: [StudentTeacherCommonServicesModule],
providers: [
DeleteNodeService,
RemoveNodeIdFromTransitionsService,
TeacherProjectService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting()
Expand Down Expand Up @@ -62,7 +64,6 @@ describe('TeacherProjectService', () => {
shouldNotAddSpaceIfItDoesExist();
shouldAddSpaceIfItDoesntExist();
shouldRemoveSpaces();
shouldRemoveTransitionsGoingOutOfGroupInChildNodesOfGroup();
removeNodeFromGroup();
insertNodeAfterInTransitions();
shouldNotBeAbleToInsertANodeAfterAnotherNodeWhenTheyAreDifferentTypes();
Expand Down Expand Up @@ -315,17 +316,6 @@ function shouldRemoveSpaces() {
});
}

function shouldRemoveTransitionsGoingOutOfGroupInChildNodesOfGroup() {
it('should remove transitions going out of group in child nodes of group', () => {
service.setProject(demoProjectJSON);
expect(service.getTransitionsByFromNodeId('node18').length).toEqual(1);
expect(service.getTransitionsByFromNodeId('node19').length).toEqual(1);
service.removeTransitionsOutOfGroup('group1');
expect(service.getTransitionsByFromNodeId('node18').length).toEqual(1);
expect(service.getTransitionsByFromNodeId('node19').length).toEqual(0);
});
}

function expectChildNodeIdLength(nodeId, expectedLength) {
expect(service.getChildNodeIdsById(nodeId).length).toEqual(expectedLength);
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/student/vle/student-vle.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ import { NodeComponent } from '../../../assets/wise5/vle/node/node.component';
ChooseBranchPathDialogComponent,
GenerateImageDialogComponent,
GroupTabsComponent,
NodeNavigationComponent,
SafeUrl,
VLEComponent,
VLEParentComponent
Expand All @@ -51,6 +50,7 @@ import { NodeComponent } from '../../../assets/wise5/vle/node/node.component';
MatDialogModule,
NavigationComponent,
NodeComponent,
NodeNavigationComponent,
NodeStatusIconComponent,
RunEndedAndLockedMessageComponent,
SimpleDialogModule,
Expand Down
2 changes: 2 additions & 0 deletions src/app/teacher/teacher-authoring.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import { DeleteTranslationsService } from '../../assets/wise5/services/deleteTra
import { CopyTranslationsService } from '../../assets/wise5/services/copyTranslationsService';
import { CreateComponentService } from '../../assets/wise5/services/createComponentService';
import { NotifyAuthorService } from '../../assets/wise5/services/notifyAuthorService';
import { RemoveNodeIdFromTransitionsService } from '../../assets/wise5/services/removeNodeIdFromTransitionsService';

@NgModule({
imports: [StudentTeacherCommonModule, AuthoringToolModule, RouterModule, AuthoringRoutingModule],
Expand Down Expand Up @@ -65,6 +66,7 @@ import { NotifyAuthorService } from '../../assets/wise5/services/notifyAuthorSer
DeleteTranslationsService,
{ provide: PeerGroupService, useExisting: TeacherPeerGroupService },
{ provide: ProjectService, useExisting: TeacherProjectService },
RemoveNodeIdFromTransitionsService,
TeacherDataService,
TeacherDiscussionService,
TeacherNodeService,
Expand Down
2 changes: 2 additions & 0 deletions src/app/teacher/teacher-tools.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import { MilestoneReportService } from '../../assets/wise5/services/milestoneRep
import { RouterModule } from '@angular/router';
import { TeacherToolsRoutingModule } from './teacher-tools-routing.module';
import { TeacherPauseScreenService } from '../../assets/wise5/services/teacherPauseScreenService';
import { RunStatusService } from '../../assets/wise5/services/runStatusService';

@NgModule({
imports: [
Expand All @@ -56,6 +57,7 @@ import { TeacherPauseScreenService } from '../../assets/wise5/services/teacherPa
MoveNodesService,
{ provide: NodeService, useExisting: TeacherNodeService },
ProjectAssetService,
RunStatusService,
SpaceService,
{ provide: PeerGroupService, useExisting: TeacherPeerGroupService },
{ provide: ProjectService, useExisting: TeacherProjectService },
Expand Down
4 changes: 3 additions & 1 deletion src/app/teacher/teacher-tools.resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { NotificationService } from '../../assets/wise5/services/notificationSer
import { TeacherWebSocketService } from '../../assets/wise5/services/teacherWebSocketService';
import { NotebookService } from '../../assets/wise5/services/notebookService';
import { AchievementService } from '../../assets/wise5/services/achievementService';
import { RunStatusService } from '../../assets/wise5/services/runStatusService';

export const TeacherToolsResolver: ResolveFn<any> = (
route: ActivatedRouteSnapshot,
Expand All @@ -20,14 +21,15 @@ export const TeacherToolsResolver: ResolveFn<any> = (
notebookService: NotebookService = inject(NotebookService),
notificationService: NotificationService = inject(NotificationService),
projectService: ProjectService = inject(ProjectService),
runStatusService: RunStatusService = inject(RunStatusService),
websocketService: TeacherWebSocketService = inject(TeacherWebSocketService)
): Observable<any> =>
configService
.retrieveConfig(`/api/config/classroomMonitor/${route.params['unitId']}`)
.pipe(switchMap(() => projectService.retrieveProject()))
.pipe(switchMap(() => classroomStatusService.retrieveStudentStatuses()))
.pipe(switchMap(() => achievementService.retrieveStudentAchievements()))
.pipe(switchMap(() => dataService.retrieveRunStatus()))
.pipe(switchMap(() => runStatusService.retrieveRunStatus()))
.pipe(switchMap(() => notificationService.retrieveNotifications()))
.pipe(switchMap(() => dataService.retrieveAnnotations()))
.pipe(switchMap(() => notebookService.retrieveNotebookItems()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,25 @@ import { provideHttpClientTesting } from '@angular/common/http/testing';
import { StudentTeacherCommonServicesModule } from '../../../../../app/student-teacher-common-services.module';
import { MoveNodesService } from '../../../services/moveNodesService';
import { TeacherProjectService } from '../../../services/teacherProjectService';
import { RemoveNodeIdFromTransitionsService } from '../../../services/removeNodeIdFromTransitionsService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';

let component: ChooseMoveNodeLocationComponent;
let fixture: ComponentFixture<ChooseMoveNodeLocationComponent>;
describe('ChooseMoveNodeLocationComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ChooseMoveNodeLocationComponent],
schemas: [NO_ERRORS_SCHEMA],
imports: [RouterTestingModule, StudentTeacherCommonServicesModule],
providers: [MoveNodesService, TeacherProjectService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
});
declarations: [ChooseMoveNodeLocationComponent],
schemas: [NO_ERRORS_SCHEMA],
imports: [RouterTestingModule, StudentTeacherCommonServicesModule],
providers: [
MoveNodesService,
RemoveNodeIdFromTransitionsService,
TeacherProjectService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting()
]
});
window.history.pushState(
{
selectedNodeIds: ['node1']
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { DeleteTranslationsService } from '../../services/deleteTranslationsServ
import { provideRouter } from '@angular/router';
import { CopyTranslationsService } from '../../services/copyTranslationsService';
import { TeacherProjectTranslationService } from '../../services/teacherProjectTranslationService';
import { RemoveNodeIdFromTransitionsService } from '../../services/removeNodeIdFromTransitionsService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';

let component: ProjectAuthoringLessonComponent;
Expand Down Expand Up @@ -56,6 +57,7 @@ describe('ProjectAuthoringLessonComponent', () => {
DeleteNodeService,
DeleteTranslationsService,
provideRouter([]),
RemoveNodeIdFromTransitionsService,
TeacherDataService,
TeacherProjectService,
TeacherProjectTranslationService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { DeleteTranslationsService } from '../../services/deleteTranslationsServ
import { provideRouter } from '@angular/router';
import { CopyTranslationsService } from '../../services/copyTranslationsService';
import { TeacherProjectTranslationService } from '../../services/teacherProjectTranslationService';
import { RemoveNodeIdFromTransitionsService } from '../../services/removeNodeIdFromTransitionsService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';

const nodeId1 = 'nodeId1';
Expand Down Expand Up @@ -44,6 +45,7 @@ describe('ProjectAuthoringStepComponent', () => {
DeleteNodeService,
DeleteTranslationsService,
provideRouter([]),
RemoveNodeIdFromTransitionsService,
TeacherDataService,
TeacherProjectService,
TeacherProjectTranslationService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import { AddStepButtonComponent } from '../add-step-button/add-step-button.compo
import { DeleteTranslationsService } from '../../services/deleteTranslationsService';
import { CopyTranslationsService } from '../../services/copyTranslationsService';
import { TeacherProjectTranslationService } from '../../services/teacherProjectTranslationService';
import { RemoveNodeIdFromTransitionsService } from '../../services/removeNodeIdFromTransitionsService';

let configService: ConfigService;
let component: ProjectAuthoringComponent;
Expand Down Expand Up @@ -83,6 +84,7 @@ describe('ProjectAuthoringComponent', () => {
DeleteTranslationsService,
MoveNodesService,
provideRouter([]),
RemoveNodeIdFromTransitionsService,
TeacherDataService,
TeacherProjectService,
TeacherProjectTranslationService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MilestoneReportService } from '../services/milestoneReportService';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { TeacherPauseScreenService } from '../services/teacherPauseScreenService';
import { RunStatusService } from '../services/runStatusService';

@NgModule({
imports: [
Expand All @@ -30,6 +31,7 @@ import { TeacherPauseScreenService } from '../services/teacherPauseScreenService
TeacherPeerGroupService,
TeacherProjectService,
TeacherWebSocketService,
RunStatusService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting()
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { TeacherDataService } from '../services/teacherDataService';
import { TeacherProjectService } from '../services/teacherProjectService';
import { TeacherPauseScreenService } from '../services/teacherPauseScreenService';
import { NavigationEnd, Router } from '@angular/router';
import { RunStatusService } from '../services/runStatusService';

@Component({
selector: 'classroom-monitor',
Expand Down Expand Up @@ -46,6 +47,7 @@ export class ClassroomMonitorComponent implements OnInit {
private pauseScreenService: TeacherPauseScreenService,
private projectService: TeacherProjectService,
private router: Router,
private runStatusService: RunStatusService,
private sessionService: SessionService,
private snackBar: MatSnackBar
) {}
Expand Down Expand Up @@ -204,7 +206,7 @@ export class ClassroomMonitorComponent implements OnInit {

@HostListener('window:beforeunload')
protected unPauseAllPeriods(): void {
this.dataService.getRunStatus().periods.forEach((period) => {
this.runStatusService.getRunStatus().periods.forEach((period) => {
if (period.periodId !== -1 && period.paused) {
this.pauseScreenService.pauseScreensChanged(period.periodId, false);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ export class EditGraphConnectedComponentsComponent extends EditConnectedComponen
connectedComponent.xColumn = 0;
connectedComponent.yColumn = 1;
}
connectedComponent.type = 'importWork';
}

connectedComponentShowClassmateWorkChanged(connectedComponent: any) {
Expand Down
Loading

0 comments on commit 2cd9a58

Please sign in to comment.