mirror of https://gitee.com/bigwinds/arangodb
47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
/*global describe, beforeEach, afterEach, it*/
|
|
'use strict';
|
|
|
|
var expect = require("chai").expect;
|
|
var FoxxManager = require("org/arangodb/foxx/manager");
|
|
var fs = require("fs");
|
|
var internal = require('internal');
|
|
var basePath = fs.makeAbsolute(fs.join(internal.startupPath, "common", "test-data", "apps"));
|
|
|
|
describe("Foxx Manager", function () {
|
|
describe("when manifest changes", function () {
|
|
var mount;
|
|
|
|
beforeEach(function () {
|
|
mount = "/unittest/clobbered-manifest";
|
|
FoxxManager.install(fs.join(basePath, "minimal-working-manifest"), mount);
|
|
});
|
|
|
|
afterEach(function () {
|
|
FoxxManager.uninstall(mount, {force: true});
|
|
});
|
|
|
|
it("doesn't mutilate mounted apps", function () {
|
|
var deps1 = {hello: {name: 'world', required: true, version: '*'}};
|
|
var deps2 = {clobbered: {name: 'completely', required: true, version: '*'}};
|
|
|
|
var app = FoxxManager.lookupApp(mount);
|
|
expect(app.manifest.dependencies).to.eql({});
|
|
var filename = app.main.context.applicationContext.fileName('manifest.json');
|
|
var rawJson = fs.readFileSync(filename, 'utf-8');
|
|
var json = JSON.parse(rawJson);
|
|
|
|
json.dependencies = deps1;
|
|
fs.writeFileSync(filename, JSON.stringify(json));
|
|
FoxxManager.scanFoxx(mount, {replace: true});
|
|
app = FoxxManager.lookupApp(mount);
|
|
expect(app.manifest.dependencies).to.eql(deps1);
|
|
|
|
json.dependencies = deps2;
|
|
fs.writeFileSync(filename, JSON.stringify(json));
|
|
FoxxManager.scanFoxx(mount, {replace: true});
|
|
app = FoxxManager.lookupApp(mount);
|
|
expect(app.manifest.dependencies).to.eql(deps2);
|
|
});
|
|
});
|
|
});
|