Pass in the current distribution when running node specs
- npm package spec can use beforeAll/afterAll now - also depend on github repo directly instead of the tarball [finish #80505862]
This commit is contained in:
16
Gruntfile.js
16
Gruntfile.js
@@ -37,13 +37,19 @@ module.exports = function(grunt) {
|
|||||||
grunt.registerTask("execSpecsInNode",
|
grunt.registerTask("execSpecsInNode",
|
||||||
"Run Jasmine core specs in Node.js",
|
"Run Jasmine core specs in Node.js",
|
||||||
function() {
|
function() {
|
||||||
var done = this.async();
|
var done = this.async(),
|
||||||
require("shelljs").exec("node_modules/.bin/jasmine", function(exitCode) {
|
Jasmine = require('jasmine'),
|
||||||
if (exitCode !== 0) {
|
jasmineCore = require('./lib/jasmine-core.js'),
|
||||||
grunt.fail.fatal("Specs Failed", exitCode);
|
jasmine = new Jasmine({jasmineCore: jasmineCore});
|
||||||
|
|
||||||
|
jasmine.loadConfigFile('./spec/support/jasmine.json');
|
||||||
|
jasmine.configureDefaultReporter({
|
||||||
|
onComplete: function(passed) {
|
||||||
|
done(passed);
|
||||||
}
|
}
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
jasmine.execute();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"grunt-contrib-compress": "~0.5.2",
|
"grunt-contrib-compress": "~0.5.2",
|
||||||
"shelljs": "~0.1.4",
|
"shelljs": "~0.1.4",
|
||||||
"glob": "~3.2.9",
|
"glob": "~3.2.9",
|
||||||
"jasmine": "https://github.com/pivotal/jasmine-npm/archive/master.tar.gz",
|
"jasmine": "pivotal/jasmine",
|
||||||
"load-grunt-tasks": "^0.4.0"
|
"load-grunt-tasks": "^0.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,23 @@
|
|||||||
describe('npm package', function() {
|
describe('npm package', function() {
|
||||||
beforeEach(function() {
|
var path = require('path'),
|
||||||
|
fs = require('fs');
|
||||||
|
|
||||||
|
beforeAll(function() {
|
||||||
var shell = require('shelljs'),
|
var shell = require('shelljs'),
|
||||||
pack = shell.exec('npm pack', { silent: true });
|
pack = shell.exec('npm pack', { silent: true });
|
||||||
|
|
||||||
this.tarball = pack.output.split('\n')[0];
|
this.tarball = pack.output.split('\n')[0];
|
||||||
this.tmpDir = '/tmp/jasmine-core';
|
this.tmpDir = '/tmp/jasmine-core';
|
||||||
|
|
||||||
var path = this.path = require('path');
|
fs.mkdirSync(this.tmpDir);
|
||||||
var fs = this.fs = require('fs');
|
|
||||||
|
|
||||||
this.fs.mkdirSync(this.tmpDir);
|
|
||||||
|
|
||||||
var untar = shell.exec('tar -xzf ' + this.tarball + ' -C ' + this.tmpDir, { silent: true });
|
var untar = shell.exec('tar -xzf ' + this.tarball + ' -C ' + this.tmpDir, { silent: true });
|
||||||
expect(untar.code).toBe(0);
|
expect(untar.code).toBe(0);
|
||||||
|
|
||||||
this.packagedCore = require(this.path.join(this.tmpDir, 'package/lib/jasmine-core.js'));
|
this.packagedCore = require(path.join(this.tmpDir, 'package/lib/jasmine-core.js'));
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
jasmine.addMatchers({
|
jasmine.addMatchers({
|
||||||
toExistInPath: function(util, customEquality) {
|
toExistInPath: function(util, customEquality) {
|
||||||
return {
|
return {
|
||||||
@@ -30,8 +32,7 @@ describe('npm package', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(function() {
|
afterAll(function() {
|
||||||
var path = this.path, fs = this.fs;
|
|
||||||
var cleanup = function (parent, fileOrFolder) {
|
var cleanup = function (parent, fileOrFolder) {
|
||||||
var fullPath = path.join(parent, fileOrFolder);
|
var fullPath = path.join(parent, fileOrFolder);
|
||||||
if (fs.statSync(fullPath).isFile()) {
|
if (fs.statSync(fullPath).isFile()) {
|
||||||
@@ -48,11 +49,11 @@ describe('npm package', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('has a root path', function() {
|
it('has a root path', function() {
|
||||||
expect(this.packagedCore.files.path).toEqual(this.fs.realpathSync(this.path.resolve(this.tmpDir, 'package/lib/jasmine-core')));
|
expect(this.packagedCore.files.path).toEqual(fs.realpathSync(path.resolve(this.tmpDir, 'package/lib/jasmine-core')));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('has a bootDir', function() {
|
it('has a bootDir', function() {
|
||||||
expect(this.packagedCore.files.bootDir).toEqual(this.fs.realpathSync(this.path.resolve(this.tmpDir, 'package/lib/jasmine-core')));
|
expect(this.packagedCore.files.bootDir).toEqual(fs.realpathSync(path.resolve(this.tmpDir, 'package/lib/jasmine-core')));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('has jsFiles', function() {
|
it('has jsFiles', function() {
|
||||||
@@ -93,8 +94,8 @@ describe('npm package', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('has an imagesDir', function() {
|
it('has an imagesDir', function() {
|
||||||
expect(this.packagedCore.files.imagesDir).toEqual(this.fs.realpathSync(this.path.resolve(this.tmpDir, 'package/images')));
|
expect(this.packagedCore.files.imagesDir).toEqual(fs.realpathSync(path.resolve(this.tmpDir, 'package/images')));
|
||||||
var images = this.fs.readdirSync(this.path.resolve(this.tmpDir, 'package/images'));
|
var images = fs.readdirSync(path.resolve(this.tmpDir, 'package/images'));
|
||||||
|
|
||||||
expect(images).toContain('jasmine-horizontal.png');
|
expect(images).toContain('jasmine-horizontal.png');
|
||||||
expect(images).toContain('jasmine-horizontal.svg');
|
expect(images).toContain('jasmine-horizontal.svg');
|
||||||
|
|||||||
Reference in New Issue
Block a user