Browse Source

fix testing errors

pull/10108/head
Mehmet Erim 5 years ago
parent
commit
6e87e155de
  1. 27
      npm/ng-packs/packages/core/src/lib/tests/application-configuration.service.spec.ts
  2. 12
      npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts
  3. 29
      npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
  4. 2
      npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts
  5. 126
      npm/ng-packs/packages/core/src/lib/tests/visibility.directive.spec.ts
  6. 1
      npm/ng-packs/packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts
  7. 9
      npm/ng-packs/scripts/prod-build.ts

27
npm/ng-packs/packages/core/src/lib/tests/application-configuration.service.spec.ts

@ -1,27 +0,0 @@
import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
import { of } from 'rxjs';
import { ApplicationConfigurationService, RestService } from '../services';
describe('ApplicationConfigurationService', () => {
let spectator: SpectatorService<ApplicationConfigurationService>;
const createService = createServiceFactory({
service: ApplicationConfigurationService,
mocks: [RestService],
});
beforeEach(() => (spectator = createService()));
it('should send a GET to application-configuration API', () => {
const rest = spectator.inject(RestService);
const requestSpy = jest.spyOn(rest, 'request');
requestSpy.mockReturnValue(of(null));
spectator.service.getConfiguration().subscribe();
expect(requestSpy).toHaveBeenCalledWith(
{ method: 'GET', url: '/api/abp/application-configuration' },
{},
);
});
});

12
npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts

@ -1,5 +1,7 @@
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
import { of } from 'rxjs';
import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
import {
ApplicationConfigurationDto,
CurrentUserDto,
@ -107,14 +109,20 @@ describe('ConfigStateService', () => {
const createService = createServiceFactory({
service: ConfigStateService,
imports: [HttpClientTestingModule],
providers: [{ provide: CORE_OPTIONS, useValue: { skipGetAppConfiguration: true } }],
providers: [
{ provide: CORE_OPTIONS, useValue: { skipGetAppConfiguration: true } },
{
provide: AbpApplicationConfigurationService,
useValue: { get: () => of(CONFIG_STATE_DATA) },
},
],
});
beforeEach(() => {
spectator = createService();
configState = spectator.service;
configState.setState(CONFIG_STATE_DATA);
configState.refreshAppState();
});
describe('#getAll', () => {

29
npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts

@ -1,13 +1,15 @@
import { Injector } from '@angular/core';
import { Router } from '@angular/router';
import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest';
import { of } from 'rxjs';
import { BehaviorSubject } from 'rxjs';
import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
import { ConfigStateService, SessionStateService } from '../services';
import { LocalizationService } from '../services/localization.service';
import { CORE_OPTIONS } from '../tokens/options.token';
import { CONFIG_STATE_DATA } from './config-state.service.spec';
const appConfigData$ = new BehaviorSubject(CONFIG_STATE_DATA);
describe('LocalizationService', () => {
let spectator: SpectatorService<LocalizationService>;
let sessionState: SpyObject<SessionStateService>;
@ -25,7 +27,7 @@ describe('LocalizationService', () => {
},
{
provide: AbpApplicationConfigurationService,
useValue: { get: () => of(CONFIG_STATE_DATA) },
useValue: { get: () => appConfigData$ },
},
],
});
@ -36,8 +38,9 @@ describe('LocalizationService', () => {
configState = spectator.inject(ConfigStateService);
service = spectator.service;
configState.setState(CONFIG_STATE_DATA);
configState.refreshAppState();
sessionState.setLanguage('tr');
appConfigData$.next(CONFIG_STATE_DATA);
});
describe('#currentLang', () => {
@ -108,12 +111,13 @@ describe('LocalizationService', () => {
`(
'should return observable $expected when resource name is $resource and key is $key',
async ({ resource, key, defaultValue, expected }) => {
configState.setState({
appConfigData$.next({
localization: {
values: { foo: { bar: 'baz' }, x: { y: 'z' } },
defaultResourceName: 'x',
},
});
} as any);
configState.refreshAppState();
service.localize(resource, key, defaultValue).subscribe(result => {
expect(result).toBe(expected);
@ -149,12 +153,13 @@ describe('LocalizationService', () => {
`(
'should return $expected when resource name is $resource and key is $key',
({ resource, key, defaultValue, expected }) => {
configState.setState({
appConfigData$.next({
localization: {
values: { foo: { bar: 'baz' }, x: { y: 'z' } },
defaultResourceName: 'x',
},
});
} as any);
configState.refreshAppState();
const result = service.localizeSync(resource, key, defaultValue);
@ -195,12 +200,13 @@ describe('LocalizationService', () => {
`(
'should return observable $expected when resource names are $resources and keys are $keys',
async ({ resources, keys, defaultValue, expected }) => {
configState.setState({
appConfigData$.next({
localization: {
values: { foo: { bar: 'baz' }, x: { y: 'z' } },
defaultResourceName: 'x',
},
});
} as any);
configState.refreshAppState();
service.localizeWithFallback(resources, keys, defaultValue).subscribe(result => {
expect(result).toBe(expected);
@ -241,12 +247,13 @@ describe('LocalizationService', () => {
`(
'should return $expected when resource names are $resources and keys are $keys',
({ resources, keys, defaultValue, expected }) => {
configState.setState({
appConfigData$.next({
localization: {
values: { foo: { bar: 'baz' }, x: { y: 'z' } },
defaultResourceName: 'x',
},
});
} as any);
configState.refreshAppState();
const result = service.localizeWithFallbackSync(resources, keys, defaultValue);

2
npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts

@ -17,7 +17,7 @@ describe('PermissionDirective', () => {
describe('with condition', () => {
beforeEach(() => {
spectator = createDirective(
`<div id="test-element" [abpPermission]="'test'">Testing Permission Directive</div>`,
`<div id="test-element" *abpPermission="'test'">Testing Permission Directive</div>`,
);
directive = spectator.directive;
});

126
npm/ng-packs/packages/core/src/lib/tests/visibility.directive.spec.ts

@ -1,126 +0,0 @@
import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/jest';
import { VisibilityDirective } from '../directives/visibility.directive';
describe('VisibilityDirective', () => {
let spectator: SpectatorDirective<VisibilityDirective>;
let directive: VisibilityDirective;
const createDirective = createDirectiveFactory({
directive: VisibilityDirective,
});
describe('without content', () => {
beforeEach(() => {
spectator = createDirective('<div [abpVisibility]></div>');
directive = spectator.directive;
});
it('should be created', () => {
expect(directive).toBeTruthy();
});
xit('should be removed', done => {
setTimeout(() => {
expect(spectator.query('div')).toBeFalsy();
done();
}, 0);
});
});
describe('without mutation observer and with content', () => {
beforeEach(() => {
spectator = createDirective('<div [abpVisibility]><p id="content">Content</p></div>');
directive = spectator.directive;
});
it('should not removed', done => {
setTimeout(() => {
expect(spectator.query('div')).toBeTruthy();
done();
}, 0);
});
});
describe('without mutation observer and with focused element', () => {
beforeEach(() => {
spectator = createDirective(
'<div id="main" [abpVisibility]="container"></div><div #container><p id="content">Content</p></div>',
);
directive = spectator.directive;
});
it('should not removed', done => {
setTimeout(() => {
expect(spectator.query('#main')).toBeTruthy();
done();
}, 0);
});
});
describe('without content and with focused element', () => {
beforeEach(() => {
spectator = createDirective(
'<div id="main" [abpVisibility]="container"></div><div #container></div>',
);
directive = spectator.directive;
});
xit('should be removed', done => {
setTimeout(() => {
expect(spectator.query('#main')).toBeFalsy();
done();
}, 0);
});
});
describe('with mutation observer and with content', () => {
beforeEach(() => {
spectator = createDirective('<div [abpVisibility]><div id="content">Content</div></div>');
directive = spectator.directive;
});
xit('should remove the main div element when content removed', done => {
spectator.query('#content').remove();
setTimeout(() => {
expect(spectator.query('div')).toBeFalsy();
done();
}, 0);
});
it('should not remove the main div element', done => {
spectator.query('div').appendChild(document.createElement('div'));
setTimeout(() => {
expect(spectator.query('div')).toBeTruthy();
done();
}, 100);
});
});
describe('with mutation observer and with focused element', () => {
beforeEach(() => {
spectator = createDirective(
'<div id="main" [abpVisibility]="container"></div><div #container><p id="content">Content</p></div>',
);
directive = spectator.directive;
});
xit('should remove the main div element when content removed', done => {
spectator.query('#content').remove();
setTimeout(() => {
expect(spectator.query('#main')).toBeFalsy();
done();
}, 0);
});
it('should not remove the main div element', done => {
spectator.query('#content').appendChild(document.createElement('div'));
setTimeout(() => {
expect(spectator.query('#main')).toBeTruthy();
done();
}, 100);
});
});
});

1
npm/ng-packs/packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts

@ -1,6 +1,5 @@
import { InjectionToken } from '@angular/core';
// TODO: Should be documented
export const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(
'SUPPRESS_UNSAVED_CHANGES_WARNING',
);

9
npm/ng-packs/scripts/prod-build.ts

@ -17,15 +17,6 @@ import fse from 'fs-extra';
overwrite: true,
});
// TODO: Will be removed in v3.1, it is added to fix the prod build error
await fse.copy(
'../node_modules/@swimlane',
'../../../templates/app/angular/node_modules/@swimlane',
{
overwrite: true,
},
);
await execa('yarn', ['ng', 'build', '--prod'], {
stdout: 'inherit',
cwd: '../../../templates/app/angular',

Loading…
Cancel
Save