0bab4e1dafda4a1f1ef6a3e79e446db81bedb9a3
[vid.git] / vid-webpack-master / cypress / support / jsonBuilders / jsonBuilder.ts
1 export class JsonBuilder<T> implements IJsonBuilder<T>{
2   currentValue: T;
3
4   public basicJson(json: JSON, url: string, status: number, delay: number, alias: string, changeResFunc?: Function) : void {
5     this.currentValue = <T>JSON.parse(JSON.stringify(json));
6     this.currentValue = changeResFunc ? changeResFunc(this.currentValue) : this.currentValue;
7     return this.initMockCall(url, status, delay, alias);
8   }
9
10   public initMockCall(url: string, status: number, delay: number, alias: string) {
11       cy.server()
12         .route({
13           method: 'GET',
14           status: status,
15           delay : delay ? delay : 0,
16           url: url,
17           response: JSON.stringify(this.currentValue)
18         }).as(alias);
19   }
20   public basicMock(jsonPath: string, url: string) {
21     cy.readFile(jsonPath).then((res) => {
22       this.basicJson(res, url, 200, 0, url,);
23     })
24   }
25 }
26
27 export interface IJsonBuilder<T>{
28   basicJson(json: JSON, url: string, status: number, delay: number, alias: string, changeResFunc?: Function) : void;
29   initMockCall(url: string, status: number, delay: number, alias: string): void;
30   basicMock(jsonPath: string, url: string): void;
31 }