UNPKG

ohayolibs

Version:

Ohayo is a set of essential modules for ohayojp.

114 lines (108 loc) 4.22 kB
import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; import * as LANG from '../core/lang.config'; import { APPNAME, createOhayoApp, createOhayoRunner, createNgRunner } from '../utils/testing'; describe('NgOhayoSchematic: application', () => { let runner: SchematicTestRunner; let tree: UnitTestTree; describe(``, () => { beforeEach(async () => ({ runner, tree } = await createOhayoApp())); it(`should add @ohayo to dependencies`, () => { const packageJson = JSON.parse(tree.readContent('package.json')); expect(packageJson.dependencies['@ohayo/theme']).toBeDefined(); expect(packageJson.dependencies['@ohayo/components']).toBeDefined(); expect(packageJson.dependencies['@ohayo/util']).toBeDefined(); expect(packageJson.dependencies['@ohayo/acl']).toBeDefined(); expect(packageJson.dependencies['@ohayo/auth']).toBeDefined(); expect(packageJson.dependencies['@ohayo/cache']).toBeDefined(); expect(packageJson.dependencies['@ohayo/mock']).toBeDefined(); }); it('should be add vscode extensions confir', () => { const filePath = '.vscode/extensions.json'; expect(tree.exists(filePath)).toBe(true, `Not found [${filePath}]`); const json = JSON.parse(tree.readContent(filePath)); expect(json != null).toBe(true); expect(json.recommendations[0]).toBe('cipchk.ohayojp-extension-pack'); }); }); describe('#i18n', () => { describe('with true', () => { beforeEach(async () => ({ runner, tree } = await createOhayoApp({ i18n: true }))); it(`can add i18n related`, () => { const specTs = tree.readContent('/projects/foo/src/app/app.module.ts'); expect(specTs).toContain(`import { I18NService } from '@core'`); }); }); describe('with false', () => { beforeEach(async () => ({ runner, tree } = await createOhayoApp({ i18n: false }))); it(`can't add i18n related`, () => { const specTs = tree.readContent('/projects/foo/src/app/app.module.ts'); expect(specTs).not.toContain(`@core/i18n/`); }); }); describe('default language', () => { it(`with use zh`, async () => { spyOn(LANG, 'getLangData').and.returnValue( JSON.stringify({ key1: 'Key1', key2: 'KEY2', }), ); const baseRunner = createNgRunner(); const workspaceTree = await baseRunner .runSchematicAsync('workspace', { name: 'workspace', newProjectRoot: 'projects', version: '6.0.0', }) .toPromise(); const appTree = await baseRunner .runSchematicAsync( 'application', { name: APPNAME, inlineStyle: false, inlineTemplate: false, routing: false, style: 'css', skipTests: false, skipPackageJson: false, }, workspaceTree, ) .toPromise(); appTree.create( '/demo.html', ` {{(status ? 'key1' : 'key2') | translate }} {{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | translate }} [placeholder]="'key1' | translate"> <nz-tab [nzTitle]="'key1' | translate"> {{ 'Please enter mobile number!' | translate }} <button>{{ count ? count + 's' : 'key1' | translate }}</button> `, ); const ohayoRunner = createOhayoRunner(); // tslint:disable-next-line:no-shadowed-variable const tree = await ohayoRunner .runSchematicAsync( 'ng-add', { skipPackageJson: false, defaultLanguage: 'zh', }, appTree, ) .toPromise(); const res = tree.readContent('/demo.html'); expect(res).toBe(` {{ status ? 'key1' : 'key2' }} {{ status ? 'menu.fullscreen.exit' : 'menu.fullscreen' }} [placeholder]="'key1'"> <nz-tab [nzTitle]="'key1'"> Please enter mobile number! <button>{{ count ? count + 's' : 'key1'}}</button> `); }); }); }); });