Skip to content

Commit

Permalink
GROUP-89 Added completion support to asynchronousRequest.mediator.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
makmn1 committed Mar 18, 2024
1 parent 39093b9 commit 6b6c312
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 39 deletions.
14 changes: 0 additions & 14 deletions src/app/groups/wrapper/groups.component.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { Component, HostBinding } from "@angular/core";
import { GroupBoardComponent } from "../groupBoard/groupBoard.component";
import { GroupUtilityBarComponent } from "../groupUtilityBar/groupUtilityBar.component";
import { EventStreamService } from "../../services/notifications/eventStream.service";
import { PublicEventModel } from "../../model/events/publicEvent.model";
import { GroupEventVisitor } from "../../services/notifications/visitors/group/groupEvent.visitor";
import { map } from "rxjs";

@Component({
selector: "app-groups",
Expand All @@ -15,14 +11,4 @@ import { map } from "rxjs";
})
export class GroupsComponent {
@HostBinding("class") classes = "component-container";

constructor(
private readonly eventStream: EventStreamService,
private readonly groupEventVisitor: GroupEventVisitor,
) {
this.eventStream
.stream<PublicEventModel>("groups.updates.all")
.pipe(map((event) => PublicEventModel.instantiate(event)))
.subscribe((event) => event.accept(this.groupEventVisitor));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ export class AsyncRequestStatusService {
): Observable<T> {
const terminatingStatuses = [
StateEnum.REQUEST_ACCEPTED,
StateEnum.REQUEST_COMPLETED,
StateEnum.REQUEST_REJECTED,
StateEnum.REQUEST_TIMEOUT,
];
Expand Down
51 changes: 26 additions & 25 deletions src/app/services/notifications/asynchronousRequest.mediator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,15 @@ describe("AsynchronousRequestMediator", () => {

// The backend only sends us properties, so use the spread operator to only send back properties, not methods
const eventResponses$ = cold("----a", { a: { ...responseEvent } });
const request$ = cold("--a|", { a: true });

rsocketRequestFactoryMock.createRequestStream.and.callFake(
() => eventResponses$ as any,
const request$ = cold("--|");

rsocketRequestFactoryMock.createRequestStream.and.returnValue(
eventResponses$,
);

rsocketRequestFactoryMock.createRequestResponse.and.callFake(
() => request$ as any,
rsocketRequestFactoryMock.createRequestResponse.and.returnValue(
request$,
);

const response$ = service.submitRequestEvent(
Expand All @@ -148,7 +149,7 @@ describe("AsynchronousRequestMediator", () => {

expectObservable(response$).toBe("a-b-(c|)", {
a: StateEnum.REQUESTING,
b: StateEnum.REQUEST_ACCEPTED,
b: StateEnum.REQUEST_COMPLETED,
c: StateEnum.EVENT_PROCESSED,
});

Expand All @@ -170,14 +171,14 @@ describe("AsynchronousRequestMediator", () => {
const eventResponseRoute = "response.route";

const eventResponses$ = cold("-");
const request$ = cold("--a|", { a: true });
const request$ = cold("--|");

rsocketRequestFactoryMock.createRequestStream.and.callFake(
() => eventResponses$ as any,
rsocketRequestFactoryMock.createRequestStream.and.returnValue(
eventResponses$,
);

rsocketRequestFactoryMock.createRequestResponse.and.callFake(
() => request$ as any,
rsocketRequestFactoryMock.createRequestResponse.and.returnValue(
request$,
);

const response$ = service.submitRequestEvent(
Expand All @@ -188,7 +189,7 @@ describe("AsynchronousRequestMediator", () => {

expectObservable(response$).toBe("a-b- 6996ms (c|)", {
a: StateEnum.REQUESTING,
b: StateEnum.REQUEST_ACCEPTED,
b: StateEnum.REQUEST_COMPLETED,
c: StateEnum.EVENT_PROCESSING_TIMEOUT,
});
});
Expand All @@ -206,12 +207,12 @@ describe("AsynchronousRequestMediator", () => {
const eventResponses$ = cold("-");
const request$ = cold("--#");

rsocketRequestFactoryMock.createRequestStream.and.callFake(
() => eventResponses$ as any,
rsocketRequestFactoryMock.createRequestStream.and.returnValue(
eventResponses$,
);

rsocketRequestFactoryMock.createRequestResponse.and.callFake(
() => request$ as any,
rsocketRequestFactoryMock.createRequestResponse.and.returnValue(
request$,
);

const response$ = service.submitRequestEvent(
Expand Down Expand Up @@ -243,12 +244,12 @@ describe("AsynchronousRequestMediator", () => {
const eventResponses$ = cold("-");
const request$ = cold("-");

rsocketRequestFactoryMock.createRequestStream.and.callFake(
() => eventResponses$ as any,
rsocketRequestFactoryMock.createRequestStream.and.returnValue(
eventResponses$,
);

rsocketRequestFactoryMock.createRequestResponse.and.callFake(
() => request$ as any,
rsocketRequestFactoryMock.createRequestResponse.and.returnValue(
request$,
);

const response$ = service.submitRequestEvent(
Expand Down Expand Up @@ -281,14 +282,14 @@ describe("AsynchronousRequestMediator", () => {

// The backend only sends us properties, so use the spread operator to only send back properties, not methods
const eventResponses$ = cold("----a", { a: { ...responseEvent } });
const request$ = cold("-", { a: true });
const request$ = cold("-");

rsocketRequestFactoryMock.createRequestStream.and.callFake(
() => eventResponses$ as any,
rsocketRequestFactoryMock.createRequestStream.and.returnValue(
eventResponses$,
);

rsocketRequestFactoryMock.createRequestResponse.and.callFake(
() => request$ as any,
rsocketRequestFactoryMock.createRequestResponse.and.returnValue(
request$,
);

const response$ = service.submitRequestEvent(
Expand Down

0 comments on commit 6b6c312

Please sign in to comment.