Skip to content

Commit fbe6cba

Browse files
committed
fix(generate): fix style and template url references
Dynamic paths for components were incorrectly generating paths for templates and styles Fixes angular#340
1 parent 41347b5 commit fbe6cba

File tree

4 files changed

+65
-2
lines changed

4 files changed

+65
-2
lines changed

addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import {Component} from 'angular2/core';
33

44
@Component({
55
selector: '<%= dasherizedModuleName %>',
6-
templateUrl: 'app/<%= dynamicPath %>/<%= dasherizedModuleName %>/<%= dasherizedModuleName %>.html',
7-
styleUrls: ['app/<%= dynamicPath %>/<%= dasherizedModuleName %>/<%= dasherizedModuleName %>.css'],
6+
templateUrl: 'app<%= dynamicPath %>/<%= dasherizedModuleName %>/<%= dasherizedModuleName %>.html',
7+
styleUrls: ['app<%= dynamicPath %>/<%= dasherizedModuleName %>/<%= dasherizedModuleName %>.css'],
88
providers: [],
99
directives: [],
1010
pipes: []

addon/ng2/blueprints/component/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var stringUtils = require('ember-cli/lib/utilities/string');
22
var dynamicPathParser = require('../../utilities/dynamic-path-parser');
3+
var path = require('path');
34

45
module.exports = {
56
description: '',

addon/ng2/utilities/dynamic-path-parser.js

+4
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,9 @@ module.exports = function dynamicPathParser(project, entityName) {
2929

3030
var parsedPath = path.parse(adjustedPath);
3131

32+
parsedPath.dir = parsedPath.dir === path.sep
33+
? ''
34+
: parsedPath.dir;
35+
3236
return parsedPath;
3337
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
'use strict';
2+
3+
var expect = require('chai').expect;
4+
var path = require('path');
5+
6+
var dynamicPathParser = require('../../addon/ng2/utilities/dynamic-path-parser');
7+
8+
describe('dynamic path parser', () => {
9+
var project;
10+
var entityName = 'temp-name';
11+
beforeEach(() => {
12+
project = {
13+
root: process.cwd()
14+
}
15+
});
16+
17+
it(`parse from proj root dir`, () => {
18+
process.env.PWD = process.cwd();
19+
var result = dynamicPathParser(project, entityName);
20+
expect(result.dir).to.equal('');
21+
expect(result.name).to.equal(entityName);
22+
});
23+
24+
it(`parse from proj src dir`, () => {
25+
process.env.PWD = path.join(process.cwd(), 'src');
26+
var result = dynamicPathParser(project, entityName);
27+
expect(result.dir).to.equal('');
28+
expect(result.name).to.equal(entityName);
29+
});
30+
31+
it(`parse from proj src${path.sep}app dir`, () => {
32+
process.env.PWD = path.join(process.cwd(), 'src', 'app');
33+
var result = dynamicPathParser(project, entityName);
34+
expect(result.dir).to.equal('');
35+
expect(result.name).to.equal(entityName);
36+
});
37+
38+
it(`parse from proj src${path.sep}app${path.sep}child-dir`, () => {
39+
process.env.PWD = path.join(process.cwd(), 'src', 'app', 'child-dir');
40+
var result = dynamicPathParser(project, entityName);
41+
expect(result.dir).to.equal(`${path.sep}child-dir`);
42+
expect(result.name).to.equal(entityName);
43+
});
44+
45+
it(`parse from proj src${path.sep}app${path.sep}child-dir w/ ..${path.sep}`, () => {
46+
process.env.PWD = path.join(process.cwd(), 'src', 'app', 'child-dir');
47+
var result = dynamicPathParser(project, '..' + path.sep + entityName);
48+
expect(result.dir).to.equal(``);
49+
expect(result.name).to.equal(entityName);
50+
});
51+
52+
it(`parse from proj src${path.sep}app${path.sep}child-dir${path.sep}grand-child-dir w/ ..${path.sep}`, () => {
53+
process.env.PWD = path.join(process.cwd(), 'src', 'app', 'child-dir', 'grand-child-dir');
54+
var result = dynamicPathParser(project, '..' + path.sep + entityName);
55+
expect(result.dir).to.equal(`${path.sep}child-dir`);
56+
expect(result.name).to.equal(entityName);
57+
});
58+
});

0 commit comments

Comments
 (0)