@nx-plus/vue
Version:
Vue plugin for Nx
54 lines (41 loc) • 1.93 kB
text/typescript
import { readJson, Tree } from '@nrwl/devkit';
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
import * as utils from '../../utils';
import { applicationGenerator } from '../application/generator';
import { options as appOptions } from '../application/generator.spec';
import { vuexGenerator } from './generator';
import { VuexGeneratorSchema } from './schema';
describe('vuex schematic', () => {
let appTree: Tree;
const options: VuexGeneratorSchema = { project: 'my-app', skipFormat: false };
beforeEach(() => {
appTree = createTreeWithEmptyWorkspace();
});
it('should generate Vuex configuration for Vue 2', async () => {
jest.spyOn(utils, 'loadModule').mockReturnValue({ version: '2.0.0' });
await applicationGenerator(appTree, appOptions);
await vuexGenerator(appTree, options);
const packageJson = readJson(appTree, 'package.json');
expect(packageJson.dependencies['vuex']).toBeDefined();
expect(appTree.exists('apps/my-app/src/store/index.ts')).toBeTruthy();
const main = appTree.read('apps/my-app/src/main.ts', 'utf-8');
expect(main).toContain("import store from './store';");
expect(main).toContain(`
new Vue({
store,
render: h => h(App)
}).$mount('#app');`);
});
it('should generate Vuex configuration for Vue 3', async () => {
jest.spyOn(utils, 'loadModule').mockReturnValue({ version: '3.0.0' });
await applicationGenerator(appTree, { ...appOptions, vueVersion: 3 });
await vuexGenerator(appTree, options);
const packageJson = readJson(appTree, 'package.json');
expect(packageJson.dependencies['vuex']).toBeDefined();
expect(appTree.exists('apps/my-app/src/store/index.ts')).toBeTruthy();
const main = appTree.read('apps/my-app/src/main.ts', 'utf-8');
expect(main).toContain("import store from './store';");
expect(main).toContain(`createApp(App).use(store)
.mount('#app');`);
});
});