mirror of
https://github.com/mapillary/mapillary-js.git
synced 2026-01-25 14:07:28 +00:00
Migrate to Rollup. Emit umd, minified umd, module, type declarations and source maps. Work around problems with Falcor by using virtual module. Migrate to Jest. Run tests in with CommonJS modules becasue ES6 is not supported. Work around dependency problems by bootstrap to ensure they are not loaded during test. Remove all unused dependencies. Create state transition matrix to avoid circular dependencies. chore: tsc and rollup watch build chore: incremental watch build Remove unused dependencies. chore: use existing type packages chore: mock favicon chore: improve watch build chore: fix styles build chore: specific commonjs build for tests chore: reset spec files refactor: explicit state transition matrix chore: make src commands work chore: working unit tests and lib chore: add serve docs script chore: remove unused bundle config chore: refactor rollup config to avoid duplication fix: falcor imports fix: transition from source to target Fixes #87 Fixes #100 Fixes #159 Fixes #208
266 lines
8.6 KiB
TypeScript
266 lines
8.6 KiB
TypeScript
import { empty as observableEmpty, Observable } from "rxjs";
|
|
|
|
import { catchError } from "rxjs/operators";
|
|
import { APIWrapper } from "../../src/api/APIWrapper";
|
|
import { ICoreNode } from "../../src/api/interfaces/ICoreNode";
|
|
import { IFillNode } from "../../src/api/interfaces/IFillNode";
|
|
import { ISequence } from "../../src/api/interfaces/ISequence";
|
|
import { DataProvider } from "../helper/ProviderHelper";
|
|
|
|
describe("APIWrapperctor", () => {
|
|
test("should create an APIWrapper instance", () => {
|
|
const api: APIWrapper = new APIWrapper(undefined);
|
|
expect(api).toBeDefined();
|
|
});
|
|
});
|
|
|
|
describe("APIWrapperimageByKeyFill$", () => {
|
|
test("should call data provider correctly", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
resolve({});
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getFillImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const key: string = "key";
|
|
|
|
api.imageByKeyFill$([key])
|
|
.subscribe(
|
|
(result: { [key: string]: IFillNode }): void => {
|
|
expect(result).toBeDefined();
|
|
|
|
expect(providerSpy.calls.count()).toBe(1);
|
|
expect(providerSpy.calls.first().args[0].length).toBe(1);
|
|
expect(providerSpy.calls.first().args[0][0]).toBe(key);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
test("should pass on error", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
reject(new Error());
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getFillImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const key: string = "key";
|
|
|
|
api.imageByKeyFill$([key]).pipe(
|
|
catchError(
|
|
(err: Error): Observable<{}> => {
|
|
expect(err).toBeDefined();
|
|
expect(err instanceof Error).toBe(true);
|
|
|
|
return observableEmpty();
|
|
}))
|
|
.subscribe(
|
|
undefined,
|
|
undefined,
|
|
(): void => { done(); });
|
|
});
|
|
});
|
|
|
|
describe("APIWrapperimageByKeyFull$", () => {
|
|
test("should call provider correctly", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
resolve({});
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getFullImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const key: string = "key";
|
|
|
|
api.imageByKeyFull$([key])
|
|
.subscribe(
|
|
(result: { [key: string]: IFillNode }): void => {
|
|
expect(result).toBeDefined();
|
|
|
|
expect(providerSpy.calls.count()).toBe(1);
|
|
expect(providerSpy.calls.first().args[0].length).toBe(1);
|
|
expect(providerSpy.calls.first().args[0][0]).toBe(key);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
test("should pass on error", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
reject(new Error());
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getFullImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const key: string = "key";
|
|
|
|
api.imageByKeyFull$([key]).pipe(
|
|
catchError(
|
|
(err: Error): Observable<{}> => {
|
|
expect(err).toBeDefined();
|
|
expect(err instanceof Error).toBe(true);
|
|
|
|
return observableEmpty();
|
|
}))
|
|
.subscribe(
|
|
undefined,
|
|
undefined,
|
|
(): void => { done(); });
|
|
});
|
|
});
|
|
|
|
describe("APIWrapperimagesByH$", () => {
|
|
test("should call provider correctly", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
resolve({});
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getCoreImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const h: string = "h";
|
|
|
|
api.imagesByH$(h)
|
|
.subscribe(
|
|
(result: { [key: string]: { [index: string]: ICoreNode } }): void => {
|
|
expect(result).toBeDefined();
|
|
|
|
expect(providerSpy.calls.count()).toBe(1);
|
|
expect(providerSpy.calls.first().args[0].length).toBe(1);
|
|
expect(providerSpy.calls.first().args[0][0]).toBe(h);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
test("should pass on error", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
reject(new Error());
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getCoreImages");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const h: string = "h";
|
|
|
|
api.imagesByH$(h).pipe(
|
|
catchError(
|
|
(err: Error): Observable<{}> => {
|
|
expect(err).toBeDefined();
|
|
expect(err instanceof Error).toBe(true);
|
|
|
|
return observableEmpty();
|
|
}))
|
|
.subscribe(
|
|
undefined,
|
|
undefined,
|
|
(): void => { done(); });
|
|
});
|
|
});
|
|
|
|
describe("APIWrappersequenceByKey$", () => {
|
|
test("should call provider correctly", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
resolve({});
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getSequences");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const skey: string = "skey";
|
|
|
|
api.sequenceByKey$([skey])
|
|
.subscribe(
|
|
(result: { [key: string]: ISequence }): void => {
|
|
expect(result).toBeDefined();
|
|
|
|
expect(providerSpy.calls.count()).toBe(1);
|
|
expect(providerSpy.calls.first().args[0].length).toBe(1);
|
|
expect(providerSpy.calls.first().args[0][0]).toBe(skey);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
test("should pass on error", (done: Function) => {
|
|
const promise: any = {
|
|
then: (resolve: (result: any) => void, reject: (error: Error) => void): void => {
|
|
reject(new Error());
|
|
},
|
|
};
|
|
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "getSequences");
|
|
providerSpy.and.returnValue(promise);
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
const skey: string = "skey";
|
|
|
|
api.sequenceByKey$([skey]).pipe(
|
|
catchError(
|
|
(err: Error): Observable<{}> => {
|
|
expect(err).toBeDefined();
|
|
expect(err instanceof Error).toBe(true);
|
|
|
|
return observableEmpty();
|
|
}))
|
|
.subscribe(
|
|
undefined,
|
|
undefined,
|
|
(): void => { done(); });
|
|
});
|
|
});
|
|
|
|
describe("APIWrappersetToken", () => {
|
|
test("should call provider correctly", () => {
|
|
const provider = new DataProvider();
|
|
const providerSpy: jasmine.Spy = spyOn(provider, "setUserToken");
|
|
|
|
const api: APIWrapper = new APIWrapper(provider);
|
|
|
|
api.setUserToken("token");
|
|
|
|
expect(providerSpy.calls.count()).toBe(1);
|
|
expect(providerSpy.calls.first().args[0]).toBe("token");
|
|
});
|
|
});
|