Skip to content
Snippets Groups Projects
Commit 5c20033f authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3034 improve resource redirect service test

parent 1cb0944c
No related branches found
No related tags found
No related merge requests found
......@@ -40,44 +40,37 @@ describe('ResourceRedirectService', () => {
});
describe('redirectToResource', () => {
it('should navigate to resource on success', () => {
it('should call getResolvedResource', () => {
const resource: Resource = createDummyResource([ResourceLinkRel.VORGANG]);
const apiRoot: StateResource<ApiRootResource> = createStateResource(createApiRootResource([ApiRootLinkRel.RESOURCE]));
apiRootService.getApiRoot.mockReturnValue(of(apiRoot));
repository.getResource.mockReturnValue(of(resource));
const spy = jest.spyOn(service, 'navigateToResource');
service.getResolvedResource = jest.fn().mockReturnValue(of(resource));
service.redirectToResource(resourceUri);
expect(spy).toHaveBeenCalled();
expect(service.getResolvedResource).toHaveBeenCalled();
});
it('should handle empty api root resource', () => {
apiRootService.getApiRoot.mockReturnValue(of(createEmptyStateResource()));
const spy = jest.spyOn(service, 'handleResolveError');
it('should call navigateToResource on success', () => {
const resource: Resource = createDummyResource([ResourceLinkRel.VORGANG]);
service.getResolvedResource = jest.fn().mockReturnValue(of(resource));
service.navigateToResource = jest.fn();
service.redirectToResource(resourceUri);
expect(spy).toHaveBeenCalled();
expect(service.navigateToResource).toHaveBeenCalled();
});
it('should handle resource repository error', () => {
const apiRoot: StateResource<ApiRootResource> = createStateResource(createApiRootResource([ApiRootLinkRel.RESOURCE]));
apiRootService.getApiRoot.mockReturnValue(of(apiRoot));
repository.getResource.mockReturnValue(throwError(() => new Error('some error')));
const spy = jest.spyOn(service, 'handleResolveError');
it('should call handleResolveError on error', () => {
service.getResolvedResource = jest.fn().mockReturnValue(throwError(() => new Error('some error')));
service.handleResolveError = jest.fn();
service.redirectToResource(resourceUri);
expect(spy).toHaveBeenCalled();
expect(service.handleResolveError).toHaveBeenCalled();
});
});
describe('getResolvedResource', () => {
it('should get api root', () => {
it('should call apiRootService getApiRoot', () => {
const apiRoot: StateResource<ApiRootResource> = createStateResource(createApiRootResource());
apiRootService.getApiRoot.mockReturnValue(of(apiRoot));
......@@ -86,7 +79,7 @@ describe('ResourceRedirectService', () => {
});
});
it('should return null observable on empty resource', () => {
it('should return null observable on empty api root resource', () => {
apiRootService.getApiRoot.mockReturnValue(of(createEmptyStateResource()));
service.getResolvedResource(resourceUri).subscribe((resolvedResource: Resource) => {
......@@ -94,12 +87,23 @@ describe('ResourceRedirectService', () => {
});
});
it('should call resource repository', () => {
it('should call repository getResource with result from buildResolveUri', () => {
const apiRoot: StateResource<ApiRootResource> = createStateResource(createApiRootResource([ApiRootLinkRel.RESOURCE]));
apiRootService.getApiRoot.mockReturnValue(of(apiRoot));
service.buildResolveUri = jest.fn().mockReturnValue('some-uri');
service.getResolvedResource(resourceUri).subscribe(() => {
expect(repository.getResource).toHaveBeenCalled();
expect(repository.getResource).toHaveBeenCalledWith('some-uri');
});
});
it('should return null observable on repository error', () => {
const apiRoot: StateResource<ApiRootResource> = createStateResource(createApiRootResource([ApiRootLinkRel.RESOURCE]));
apiRootService.getApiRoot.mockReturnValue(of(apiRoot));
repository.getResource.mockReturnValue(throwError(() => new Error('some error')));
service.getResolvedResource(resourceUri).subscribe((resolvedResource: Resource) => {
expect(resolvedResource).toBeNull();
});
});
......@@ -131,13 +135,13 @@ describe('ResourceRedirectService', () => {
});
describe('handleResolveError', () => {
it('should show snackbar', () => {
it('should call snackbarService showInfo', () => {
service.handleResolveError();
expect(snackbarService.showInfo).toHaveBeenCalledWith(Messages.HTTP_STATUS_RESOURCE_NOT_FOUND);
});
it('should navigate to vorgang list', () => {
it('should call navigationService navigateToVorgangList', () => {
service.handleResolveError();
expect(navigationService.navigateToVorgangList).toHaveBeenCalled();
......@@ -145,7 +149,7 @@ describe('ResourceRedirectService', () => {
});
describe('navigateToResource', () => {
it('should navigate to vorgang', () => {
it('should call navigationService navigateToVorgang', () => {
const resource: Resource = createDummyResource([ResourceLinkRel.VORGANG]);
const resourceUri: ResourceUri = toResourceUri(resource, ResourceLinkRel.VORGANG);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment