Skip to content

Commit 2c85ecf

Browse files
committed
fix(tests): re-enable sass/less/stylus tests
1 parent 860526c commit 2c85ecf

File tree

6 files changed

+81
-120
lines changed

6 files changed

+81
-120
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { Component, OnInit } from '@angular/core';
1010
`,<% } else { %>
1111
templateUrl: '<%= dasherizedModuleName %>.component.html',<% } if(inlineStyle) { %>
1212
styles: []<% } else { %>
13-
styleUrls: ['<%= dasherizedModuleName %>.component.css']<% } %>
13+
styleUrls: ['<%= dasherizedModuleName %>.component.<%= styleExt %>']<% } %>
1414
})
1515
export class <%= classifiedModuleName %>Component implements OnInit {
1616

addon/ng2/blueprints/component/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ module.exports = {
5454
route: options.route,
5555
isLazyRoute: !!options.isLazyRoute,
5656
isAppComponent: !!options.isAppComponent,
57-
selector: this.selector
57+
selector: this.selector,
58+
styleExt: this.styleExt
5859
};
5960
},
6061

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { APP_SHELL_DIRECTIVES } from '@angular/app-shell';<% } %>
1111
`,
1212
styles: [],
1313
directives: [APP_SHELL_DIRECTIVES]<% } else { %>templateUrl: 'app.component.html',
14-
styleUrls: ['app.component.css']<% } %>
14+
styleUrls: ['app.component.<%= styleExt %>']<% } %>
1515
})
1616
export class AppComponent {
1717
title = 'app works!';

addon/ng2/blueprints/ng2/files/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@
4747
"ts-node": "0.9.1",
4848
"tslint": "3.11.0",
4949
"typescript": "^1.9.0-dev.20160627-1.0",
50-
"typings": "^1.3.1"<%= stylePackage %>
50+
"typings": "^1.3.1"
5151
}
5252
}

addon/ng2/blueprints/ng2/index.js

+1-14
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ const Blueprint = require('ember-cli/lib/models/blueprint');
22
const path = require('path');
33
const stringUtils = require('ember-cli-string-utils');
44
const getFiles = Blueprint.prototype.files;
5-
const EOL = require('os').EOL;
65

76
module.exports = {
87
description: '',
@@ -29,17 +28,6 @@ module.exports = {
2928
const fullAppName = stringUtils.dasherize(options.entity.name)
3029
.replace(/-(.)/g, (_, l) => ' ' + l.toUpperCase())
3130
.replace(/^./, (l) => l.toUpperCase());
32-
33-
var stylePackage = '';
34-
switch(options.style.toLowerCase()) {
35-
case 'sass':
36-
case 'scss':
37-
stylePackage = `,${EOL} "node-sass": "3.7.0"`;
38-
break;
39-
case 'styl':
40-
stylePackage = `,${EOL} "stylus": "0.54.5"`;
41-
break;
42-
}
4331

4432
return {
4533
htmlComponentName: stringUtils.dasherize(options.entity.name),
@@ -50,8 +38,7 @@ module.exports = {
5038
prefix: options.prefix,
5139
styleExt: this.styleExt,
5240
refToTypings: refToTypings,
53-
isMobile: options.mobile,
54-
stylePackage: stylePackage
41+
isMobile: options.mobile
5542
};
5643
},
5744

tests/e2e/e2e_workflow.spec.js

+75-102
Original file line numberDiff line numberDiff line change
@@ -316,120 +316,93 @@ describe('Basic end-to-end Workflow', function () {
316316
expect(existsSync(tmpFileLocation)).to.be.equal(true);
317317
});
318318

319-
it.skip('Installs sass support successfully', function() {
319+
// Mobile mode doesn't have styles
320+
it_not_mobile('Supports scss in styleUrls', function() {
320321
this.timeout(420000);
321322

322-
sh.exec('npm install node-sass', { silent: true });
323-
return ng(['generate', 'component', 'test-component'])
324-
.then(() => {
325-
let componentPath = path.join(process.cwd(), 'src', 'app', 'test-component');
326-
let cssFile = path.join(componentPath, 'test-component.component.css');
327-
let scssFile = path.join(componentPath, 'test-component.component.scss');
328-
let scssPartialFile = path.join(componentPath, '_test-component.component.partial.scss');
329-
330-
let scssPartialExample = '.partial {\n @extend .outer;\n }';
331-
fs.writeFileSync(scssPartialFile, scssPartialExample, 'utf8');
332-
expect(existsSync(scssPartialFile)).to.be.equal(true);
333-
334-
expect(existsSync(componentPath)).to.be.equal(true);
335-
sh.mv(cssFile, scssFile);
336-
expect(existsSync(scssFile)).to.be.equal(true);
337-
expect(existsSync(cssFile)).to.be.equal(false);
338-
let scssExample = '@import "test-component.component.partial";\n\n.outer {\n .inner { background: #fff; }\n }';
339-
fs.writeFileSync(scssFile, scssExample, 'utf8');
340-
341-
sh.exec(`${ngBin} build`);
342-
let destCss = path.join(process.cwd(), 'dist', 'app', 'test-component', 'test-component.component.css');
343-
expect(existsSync(destCss)).to.be.equal(true);
344-
let contents = fs.readFileSync(destCss, 'utf8');
345-
expect(contents).to.include('.outer .inner');
346-
expect(contents).to.include('.partial .inner');
347-
348-
sh.rm('-f', destCss);
349-
process.chdir('src');
350-
sh.exec(`${ngBin} build`);
351-
expect(existsSync(destCss)).to.be.equal(true);
352-
contents = fs.readFileSync(destCss, 'utf8');
353-
expect(contents).to.include('.outer .inner');
354-
expect(contents).to.include('.partial .inner');
355-
356-
process.chdir('..');
357-
sh.exec('npm uninstall node-sass', { silent: true });
358-
});
323+
let cssFilename = 'app.component.css';
324+
let scssFilename = 'app.component.scss';
325+
let componentPath = path.join(process.cwd(), 'src', 'app');
326+
let componentFile = path.join(componentPath, 'app.component.ts');
327+
let cssFile = path.join(componentPath, cssFilename);
328+
let scssFile = path.join(componentPath, scssFilename);
329+
let scssExample = '@import "app.component.partial";\n\n.outer {\n .inner { background: #fff; }\n }';
330+
let scssPartialFile = path.join(componentPath, '_app.component.partial.scss');
331+
let scssPartialExample = '.partial {\n @extend .outer;\n }';
332+
let componentContents = fs.readFileSync(componentFile, 'utf8');
333+
334+
sh.mv(cssFile, scssFile);
335+
fs.writeFileSync(scssFile, scssExample, 'utf8');
336+
fs.writeFileSync(scssPartialFile, scssPartialExample, 'utf8');
337+
fs.writeFileSync(componentFile, componentContents.replace(new RegExp(cssFilename, 'g'), scssFilename), 'utf8');
338+
339+
sh.exec(`${ngBin} build`);
340+
let destCssBundle = path.join(process.cwd(), 'dist', 'main.bundle.js');
341+
let contents = fs.readFileSync(destCssBundle, 'utf8');
342+
expect(contents).to.include('.outer .inner');
343+
expect(contents).to.include('.partial .inner');
344+
345+
sh.mv(scssFile, cssFile);
346+
fs.writeFileSync(cssFile, '', 'utf8');
347+
fs.writeFileSync(componentFile, componentContents, 'utf8');
348+
sh.rm('-f', scssPartialFile);
359349
});
360350

361-
it.skip('Installs less support successfully', function() {
351+
// Mobile mode doesn't have styles
352+
it_not_mobile('Supports less in styleUrls', function() {
362353
this.timeout(420000);
363354

364-
sh.exec('npm install less', { silent: true });
365-
return ng(['generate', 'component', 'test-component'])
366-
.then(() => {
367-
let componentPath = path.join(process.cwd(), 'src', 'app', 'test-component');
368-
let cssFile = path.join(componentPath, 'test-component.component.css');
369-
let lessFile = path.join(componentPath, 'test-component.component.less');
370-
371-
expect(existsSync(componentPath)).to.be.equal(true);
372-
sh.mv(cssFile, lessFile);
373-
expect(existsSync(lessFile)).to.be.equal(true);
374-
expect(existsSync(cssFile)).to.be.equal(false);
375-
let lessExample = '.outer {\n .inner { background: #fff; }\n }';
376-
fs.writeFileSync(lessFile, lessExample, 'utf8');
377-
378-
sh.exec(`${ngBin} build`);
379-
let destCss = path.join(process.cwd(), 'dist', 'app', 'test-component', 'test-component.component.css');
380-
expect(existsSync(destCss)).to.be.equal(true);
381-
let contents = fs.readFileSync(destCss, 'utf8');
382-
expect(contents).to.include('.outer .inner');
383-
384-
sh.rm('-f', destCss);
385-
process.chdir('src');
386-
sh.exec(`${ngBin} build`);
387-
expect(existsSync(destCss)).to.be.equal(true);
388-
contents = fs.readFileSync(destCss, 'utf8');
389-
expect(contents).to.include('.outer .inner');
390-
391-
process.chdir('..');
392-
sh.exec('npm uninstall less', { silent: true });
393-
});
355+
let cssFilename = 'app.component.css';
356+
let lessFilename = 'app.component.less';
357+
let componentPath = path.join(process.cwd(), 'src', 'app');
358+
let componentFile = path.join(componentPath, 'app.component.ts');
359+
let cssFile = path.join(componentPath, cssFilename);
360+
let lessFile = path.join(componentPath, lessFilename);
361+
let lessExample = '.outer {\n .inner { background: #fff; }\n }';
362+
let componentContents = fs.readFileSync(componentFile, 'utf8');
363+
364+
sh.mv(cssFile, lessFile);
365+
fs.writeFileSync(lessFile, lessExample, 'utf8');
366+
fs.writeFileSync(componentFile, componentContents.replace(new RegExp(cssFilename, 'g'), lessFilename), 'utf8');
367+
368+
sh.exec(`${ngBin} build`);
369+
let destCssBundle = path.join(process.cwd(), 'dist', 'main.bundle.js');
370+
let contents = fs.readFileSync(destCssBundle, 'utf8');
371+
expect(contents).to.include('.outer .inner');
372+
373+
fs.writeFileSync(lessFile, '', 'utf8');
374+
sh.mv(lessFile, cssFile);
375+
fs.writeFileSync(componentFile, componentContents, 'utf8');
394376
});
395377

396-
it.skip('Installs stylus support successfully', function() {
378+
// Mobile mode doesn't have styles
379+
it_not_mobile('Supports stylus in styleUrls', function() {
397380
this.timeout(420000);
398381

399-
sh.exec('npm install stylus', { silent: true });
400-
return ng(['generate', 'component', 'test-component'])
401-
.then(() => {
402-
let componentPath = path.join(process.cwd(), 'src', 'app', 'test-component');
403-
let cssFile = path.join(componentPath, 'test-component.component.css');
404-
let stylusFile = path.join(componentPath, 'test-component.component.styl');
405-
406-
sh.mv(cssFile, stylusFile);
407-
expect(existsSync(stylusFile)).to.be.equal(true);
408-
expect(existsSync(cssFile)).to.be.equal(false);
409-
let stylusExample = '.outer {\n .inner { background: #fff; }\n }';
410-
fs.writeFileSync(stylusFile, stylusExample, 'utf8');
411-
412-
sh.exec(`${ngBin} build`);
413-
let destCss = path.join(process.cwd(), 'dist', 'app', 'test-component', 'test-component.component.css');
414-
expect(existsSync(destCss)).to.be.equal(true);
415-
let contents = fs.readFileSync(destCss, 'utf8');
416-
expect(contents).to.include('.outer .inner');
417-
418-
sh.rm('-f', destCss);
419-
process.chdir('src');
420-
sh.exec(`${ngBin} build`);
421-
expect(existsSync(destCss)).to.be.equal(true);
422-
contents = fs.readFileSync(destCss, 'utf8');
423-
expect(contents).to.include('.outer .inner');
424-
425-
process.chdir('..');
426-
sh.exec('npm uninstall stylus', { silent: true });
427-
});
382+
let cssFilename = 'app.component.css';
383+
let stylusFilename = 'app.component.scss';
384+
let componentPath = path.join(process.cwd(), 'src', 'app');
385+
let componentFile = path.join(componentPath, 'app.component.ts');
386+
let cssFile = path.join(componentPath, cssFilename);
387+
let stylusFile = path.join(componentPath, stylusFilename);
388+
let stylusExample = '.outer {\n .inner { background: #fff; }\n }';
389+
let componentContents = fs.readFileSync(componentFile, 'utf8');
390+
391+
sh.mv(cssFile, stylusFile);
392+
fs.writeFileSync(stylusFile, stylusExample, 'utf8');
393+
fs.writeFileSync(componentFile, componentContents.replace(new RegExp(cssFilename, 'g'), stylusFilename), 'utf8');
394+
395+
sh.exec(`${ngBin} build`);
396+
let destCssBundle = path.join(process.cwd(), 'dist', 'main.bundle.js');
397+
let contents = fs.readFileSync(destCssBundle, 'utf8');
398+
expect(contents).to.include('.outer .inner');
399+
400+
fs.writeFileSync(stylusFile, '', 'utf8');
401+
sh.mv(stylusFile, cssFile);
402+
fs.writeFileSync(componentFile, componentContents, 'utf8');
428403
});
429404

430-
// This test causes complications with path resolution in TS broccoli plugin,
431-
// and isn't mobile specific
432-
it_not_mobile('Turn on `noImplicitAny` in tsconfig.json and rebuild', function () {
405+
it('Turn on `noImplicitAny` in tsconfig.json and rebuild', function () {
433406
this.timeout(420000);
434407

435408
const configFilePath = path.join(process.cwd(), 'src', 'tsconfig.json');

0 commit comments

Comments
 (0)