kopia lustrzana https://github.com/c9/core
Merge pull request +9706 from c9/fix-restore-screen
add unit test for error handlerpull/199/head
commit
e61b2b12c3
|
@ -0,0 +1,91 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
/*global describe it before after beforeEach afterEach */
|
||||||
|
"use strict";
|
||||||
|
"use server";
|
||||||
|
|
||||||
|
require("c9/inline-mocha")(module);
|
||||||
|
require("amd-loader");
|
||||||
|
|
||||||
|
var assert = require("assert-diff");
|
||||||
|
var sinon = require("sinon");
|
||||||
|
var error = require("http-error");
|
||||||
|
|
||||||
|
var errorHandlerPlugin = require("./error_handler");
|
||||||
|
|
||||||
|
describe(__filename, function(){
|
||||||
|
this.timeout(2000);
|
||||||
|
|
||||||
|
var errorHandler;
|
||||||
|
var imports;
|
||||||
|
var options = {
|
||||||
|
scope: "ide",
|
||||||
|
hostname: "fabian-dev"
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeEach(function(done) {
|
||||||
|
imports = {
|
||||||
|
connect: {
|
||||||
|
useError: sinon.stub(),
|
||||||
|
useStart: sinon.stub()
|
||||||
|
},
|
||||||
|
"connect.static": {
|
||||||
|
addStatics: sinon.stub()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
errorHandlerPlugin(options, imports, function(err, services) {
|
||||||
|
errorHandler = imports.connect.useError.lastCall.args[0];
|
||||||
|
done(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(function () {
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should only pass white listed keys", function(done) {
|
||||||
|
var err = new error.PreconditionRequired("Resizing workspace; please retry later");
|
||||||
|
err.projectState = 1;
|
||||||
|
err.premium = true;
|
||||||
|
err.retryIn = 2000;
|
||||||
|
err.progress = {
|
||||||
|
progress: 0,
|
||||||
|
nextProgress: 0
|
||||||
|
};
|
||||||
|
err.FOO = "not me";
|
||||||
|
|
||||||
|
var req = {
|
||||||
|
headers: {
|
||||||
|
accept: "application/json"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = {
|
||||||
|
json: function(err, body, code) {
|
||||||
|
assert(!body);
|
||||||
|
assert.equal(code, 428);
|
||||||
|
assert.deepEqual(err, {
|
||||||
|
error: {
|
||||||
|
code: 428,
|
||||||
|
hostname: "fabian-dev",
|
||||||
|
scope: "ide",
|
||||||
|
stack: undefined,
|
||||||
|
message: "Resizing workspace; please retry later",
|
||||||
|
projectState: 1,
|
||||||
|
premium: true,
|
||||||
|
retryIn: 2000,
|
||||||
|
progress: {
|
||||||
|
progress: 0,
|
||||||
|
nextProgress: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
errorHandler(err, req, res, function() {
|
||||||
|
assert.fail();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
Ładowanie…
Reference in New Issue