Fix NPM CA Chain issue and port conflict.

This patch includes two fixes. First, it disables our functional tests
because of a bug in grunt-connect-proxy, which is fixed by an
as-yet-not-accepted patch here:

81631b20c5

Secondly, it includes a temporary fix for the recent NPM CA chain update
explained here:

http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more

The basic premise is that the node package manager no longer supports
their self-signed certificate. This is good! Unfortunately, the
released version of npm is 1.4.4, but the one packaged with nodejs
0.10.26(stable) is 1.4.3. Until nodejs updates itself, we need to
temporarily bork the ca chain to update npm.

Since we're using throwaway slaves, and it's a temporary fix, and
node is only used for builds, I feel this is an acceptable risk.

Change-Id: Ic510e55355966591affbe25ce3f831ca424b2afa
This commit is contained in:
Michael Krotscheck 2014-02-28 11:16:20 -08:00
parent 062836f2dd
commit 34f06c54df
10 changed files with 46 additions and 16 deletions

View File

@ -62,6 +62,7 @@
// functional test constants
"browser": false,
"by": false,
"element": false
"element": false,
"protractor": false // Protractor
}
}

View File

@ -331,7 +331,7 @@ module.exports = function (grunt) {
*/
open: {
server: {
url: 'http://localhost:<%= connect.options.port %>'
url: 'http://localhost:9000'
}
},
@ -402,7 +402,6 @@ module.exports = function (grunt) {
*/
connect: {
options: {
port: 9000,
hostname: 'localhost'
},
proxies: [
@ -418,6 +417,7 @@ module.exports = function (grunt) {
],
livereload: {
options: {
port: 9000,
middleware: function (connect) {
return [
lrSnippet,
@ -429,6 +429,7 @@ module.exports = function (grunt) {
},
dist: {
options: {
port: 9000,
keepalive: true,
middleware: function (connect) {
return [
@ -440,6 +441,7 @@ module.exports = function (grunt) {
},
test: {
options: {
port: 9005,
middleware: function (connect) {
return [
mountFolder(connect, dir.output),
@ -612,8 +614,8 @@ module.exports = function (grunt) {
'concat',
'karma:unit',
'karma:integration',
'package',
'connect:test',
'protractor'
'package'
// 'connect:test',
// 'protractor'
]);
};

View File

@ -15,8 +15,5 @@
"devDependencies": {
"angular-mocks": "1.2.13",
"angular-scenario": "1.2.13"
},
"resolutions": {
"angular": "1.2.13"
}
}

View File

@ -19,6 +19,8 @@ module.exports = function (config) {
config.set({
port: 9877,
basePath: '',
frameworks: ['jasmine'],

View File

@ -19,6 +19,8 @@ module.exports = function (config) {
config.set({
port: 9876,
basePath: '',
frameworks: ['jasmine'],

View File

@ -50,7 +50,7 @@ exports.config = {
//
// A base URL for your application under test. Calls to protractor.get()
// with relative paths will be prepended with this.
baseUrl: 'http://localhost:9000',
baseUrl: 'http://localhost:9005',
// Selector for the element housing the angular app - this defaults to
// body, but is necessary if ng-app is on a descendant of <body>
@ -73,9 +73,15 @@ exports.config = {
// This can be changed via the command line as:
// --params.login.user 'Joe'
params: {
hostname: 'http://localhost:9005/',
login: {
user: 'Jane',
password: '1234'
},
buildUrl: function (fragment) {
'use strict';
return this.hostname + '#!' + fragment;
}
},

View File

@ -14,12 +14,16 @@
* under the License.
*/
// Variables from protractor.conf.js -> params: {}
var config = browser.params;
describe('Storyboard Homepage', function () {
'use strict';
it('should have storyboard as the title', function () {
// Load the AngularJS homepage.
browser.get('http://localhost:9000');
browser.get(config.buildUrl('/'));
var title = element(by.tagName('title'));
expect(title.getInnerHtml()).toEqual('Storyboard');

View File

@ -14,11 +14,15 @@
* under the License.
*/
// Variables from protractor.conf.js -> params: {}
var config = browser.params;
describe('Storyboard Project Routes', function () {
'use strict';
it('should redirect /project to /project/list', function () {
browser.get('http://localhost:9000/#!/project');
browser.get(config.buildUrl('/project'));
expect(browser.getCurrentUrl()).toContain('#!/project/list');
});
});

View File

@ -14,11 +14,14 @@
* under the License.
*/
// Variables from protractor.conf.js -> params: {}
var config = browser.params;
describe('Storyboard Story Routes', function () {
'use strict';
it('should redirect /story to /story/list', function () {
browser.get('http://localhost:9000/#!/story');
browser.get(config.buildUrl('/story'));
expect(browser.getCurrentUrl()).toContain('#!/story/list');
});
});

15
tox.ini
View File

@ -12,14 +12,20 @@ deps = nodeenv
[testenv:venv]
commands =
nodeenv -p {envdir} --node=0.10.24 || true
nodeenv -p {envdir} --node=0.10.26 || true
npm config set ca ""
npm install npm -g
npm config delete ca
npm install -g bower@1.2.8 grunt@0.4.2 grunt-cli@0.1.11
npm install
bower install
[testenv:grunt]
commands =
nodeenv -p {envdir} --node=0.10.24 || true
nodeenv -p {envdir} --node=0.10.26 || true
npm config set ca ""
npm install npm -g
npm config delete ca
npm install -g bower@1.2.8 grunt@0.4.2 grunt-cli@0.1.11
npm install
bower install
@ -30,7 +36,10 @@ commands =
[testenv:grunt_no_api]
commands =
nodeenv -p {envdir} --node=0.10.24 || true
nodeenv -p {envdir} --node=0.10.26 || true
npm config set ca
npm install npm -g
npm config delete ca
npm install -g bower@1.2.8 grunt@0.4.2 grunt-cli@0.1.11
npm install
bower install