Skip to content

Commit 5ad5245

Browse files
committed
✨ feat: page component command
1 parent 1893a2f commit 5ad5245

File tree

4 files changed

+101
-55
lines changed

4 files changed

+101
-55
lines changed

__tests__/cli-integration.test.ts

Lines changed: 0 additions & 55 deletions
This file was deleted.

__tests__/cli.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { filesystem, system } from 'gluegun';
2+
import { PackageJSON } from 'gluegun/build/types/toolbox/meta-types';
3+
4+
const src = filesystem.path(__dirname, '..');
5+
6+
const cli = async (cmd) =>
7+
system.run('node ' + filesystem.path(src, 'bin', 'ngx-devs-cli') + ` ${cmd}`);
8+
9+
describe('[CLI]', () => {
10+
describe('[Commands: version]', () => {
11+
test('should output package.json version', async () => {
12+
const packageJson: PackageJSON = require('../package.json');
13+
const version = packageJson?.version;
14+
const output = await cli('-v');
15+
expect(output).toContain(version);
16+
});
17+
});
18+
});

__tests__/page.command.test.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { filesystem, system } from 'gluegun';
2+
3+
const src = filesystem.path(__dirname, '..');
4+
5+
const cli = async (cmd) =>
6+
system.run('node ' + filesystem.path(src, 'bin', 'ngx-devs-cli') + ` ${cmd}`);
7+
8+
describe('[Commands: generate page component]', () => {
9+
afterEach(() => {
10+
filesystem.remove('sample');
11+
});
12+
13+
test('should generate a page component with 3 files', async () => {
14+
await cli('g c p sample');
15+
16+
const html = filesystem.read('sample/sample.page.html');
17+
const scss = filesystem.read('sample/sample.page.scss');
18+
const ts = filesystem.read('sample/sample.page.ts');
19+
20+
expect(html).toBeDefined();
21+
expect(scss).toBeDefined();
22+
expect(ts).toBeDefined();
23+
});
24+
25+
test('should generate a page component html with default template <p>sample works</p>', async () => {
26+
await cli('g c p sample');
27+
28+
const html = filesystem.read('sample/sample.page.html');
29+
expect(html).toContain('<p>sample works</p>');
30+
});
31+
32+
test('should generate a page component with correct templateUrl: and styleUrls ', async () => {
33+
await cli('g c p sample');
34+
35+
const ts = filesystem.read('sample/sample.page.ts');
36+
37+
expect(ts).toContain(`templateUrl: './sample.page.html'`);
38+
expect(ts).toContain(`styleUrls: ['./sample.page.scss']`);
39+
});
40+
});

__tests__/widget.command.test.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { filesystem, system } from 'gluegun';
2+
3+
const src = filesystem.path(__dirname, '..');
4+
5+
const cli = async (cmd) =>
6+
system.run('node ' + filesystem.path(src, 'bin', 'ngx-devs-cli') + ` ${cmd}`);
7+
8+
describe('[Commands: generate widget component]', () => {
9+
afterEach(() => {
10+
filesystem.remove('sample');
11+
});
12+
13+
test('should generate widget component with 4 files', async () => {
14+
await cli('g c w sample');
15+
16+
const html = filesystem.read('sample/sample.component.html');
17+
const scss = filesystem.read('sample/sample.component.scss');
18+
const ts = filesystem.read('sample/sample.component.ts');
19+
const widgetModule = filesystem.read('sample/sample.widget.module.ts');
20+
21+
expect(html).toBeDefined();
22+
expect(scss).toBeDefined();
23+
expect(ts).toBeDefined();
24+
expect(widgetModule).toBeDefined();
25+
});
26+
27+
test('should generate widget component html with default template <p>sample works</p>', async () => {
28+
await cli('g c w sample');
29+
30+
const html = filesystem.read('sample/sample.component.html');
31+
32+
expect(html).toContain('<p>sample works</p>');
33+
});
34+
35+
test('should generate a widget component with correct templateUrl: and styleUrls ', async () => {
36+
await cli('g c w sample');
37+
38+
const ts = filesystem.read('sample/sample.component.ts');
39+
40+
expect(ts).toContain(`templateUrl: './sample.component.html'`);
41+
expect(ts).toContain(`styleUrls: ['./sample.component.scss']`);
42+
});
43+
});

0 commit comments

Comments
 (0)