diff --git a/lib/manager.ts b/lib/manager.ts
index 0e6af3f..0bb58fb 100644
--- a/lib/manager.ts
+++ b/lib/manager.ts
@@ -323,7 +323,8 @@ export class Manager {
if (!recipe.bundle) {
return;
}
- this._addReferenceToBundle(recipe, _path.relative(this.path, depResult.depName));
+ let depPath = _path.join(_path.dirname(this.configPath), this.path, depResult.depName);
+ this._addReferenceToBundle(recipe, depPath);
});
return result;
@@ -598,7 +599,7 @@ export class Manager {
if (_path.posix) {
referencePath = _path.posix.relative(_path.posix.dirname(bundlePath), pathFromCwd);
}
- var referenceComment = "/// \n";
+ var referenceComment = `/// ` + "\n";
if (bundleContent.indexOf(referenceComment) === -1) {
fs.appendFileSync(bundlePath, referenceComment, {encoding: "utf8"});
}
diff --git a/test/fixture/dtsm-installFromFile.json b/test/fixture/dtsm-installFromFile.json
index 04dc8d4..d04dd07 100644
--- a/test/fixture/dtsm-installFromFile.json
+++ b/test/fixture/dtsm-installFromFile.json
@@ -8,7 +8,7 @@
"path": "../../test-tmp/installFromFile",
"bundle": "../../test-tmp/installFromFile/bundle.d.ts",
"dependencies": {
- "atom/atom.d.ts": {
+ "angularjs/angular.d.ts": {
"ref": "master"
}
}
diff --git a/test/index_spec.ts b/test/index_spec.ts
index e73f453..37ae37a 100644
--- a/test/index_spec.ts
+++ b/test/index_spec.ts
@@ -19,11 +19,17 @@ try {
}
import fs = require("fs");
+import path = require("path");
import rimraf = require("rimraf");
import dtsm = require("../lib/index");
import fsgit = require("fs-git");
+function bundleBuilder(referencePaths: string[] = []): string {
+ "use strict";
+ return referencePaths.map(referencePath => `/// ${"\n"}`).join("");
+}
+
describe("Manager", ()=> {
describe("#init", () => {
@@ -128,7 +134,8 @@ describe("Manager", ()=> {
describe("#installFromFile", ()=> {
var dtsmFilePath = "./test/fixture/dtsm-installFromFile.json";
- var targetDir:string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var pathFromConfig: string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var targetDir = path.join(path.dirname(dtsmFilePath), pathFromConfig);
beforeEach(()=> {
if (fs.existsSync(targetDir)) {
@@ -144,7 +151,24 @@ describe("Manager", ()=> {
.then(manager => {
return manager.installFromFile().then(result => {
assert(1 < result.dependenciesList.length); // atom.d.ts has meny dependencies
- assert(fs.existsSync("test-tmp/installFromFile/atom/atom.d.ts"));
+ assert(fs.existsSync("test-tmp/installFromFile/angularjs/angular.d.ts"));
+ });
+ });
+ });
+ it("can generate definitions bundle files", ()=> {
+ assert(!fs.existsSync(targetDir));
+
+ return dtsm
+ .createManager({configPath: dtsmFilePath})
+ .then(manager => {
+ return manager.installFromFile().then(result => {
+ assert(fs.existsSync("test-tmp/installFromFile/bundle.d.ts"));
+ let generatedBundle = fs.readFileSync("test-tmp/installFromFile/bundle.d.ts", {encoding:"utf8"});
+ let expectedBundle = bundleBuilder([
+ "angularjs/angular.d.ts",
+ "jquery/jquery.d.ts",
+ ]);
+ assert(generatedBundle === expectedBundle);
});
});
});
@@ -153,7 +177,8 @@ describe("Manager", ()=> {
describe("#update", ()=> {
var dtsmFilePath = "./test/fixture/dtsm-update.json";
- var targetDir:string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var pathFromConfig: string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var targetDir = path.join(path.dirname(dtsmFilePath), pathFromConfig);
beforeEach(()=> {
if (fs.existsSync(targetDir)) {
@@ -191,7 +216,8 @@ describe("Manager", ()=> {
describe("#uninstall", ()=> {
var dtsmFilePath = "./test/fixture/dtsm-uninstall.json";
- var targetDir:string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var pathFromConfig: string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var targetDir = path.join(path.dirname(dtsmFilePath), pathFromConfig);
beforeEach(()=> {
if (fs.existsSync(targetDir)) {
@@ -215,7 +241,8 @@ describe("Manager", ()=> {
describe("#link", ()=> {
var dtsmFilePath = "./test/fixture/dtsm-link.json";
- var targetDir:string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var pathFromConfig: string = JSON.parse(fs.readFileSync(dtsmFilePath, "utf8")).path;
+ var targetDir = path.join(path.dirname(dtsmFilePath), pathFromConfig);
beforeEach(()=> {
if (fs.existsSync(targetDir)) {
@@ -235,10 +262,13 @@ describe("Manager", ()=> {
assert(fs.existsSync(dtsPath));
// check content
- var dtsContent = fs.readFileSync(dtsPath, "utf8");
- assert(dtsContent.indexOf(`/// `) !== -1);
- assert(dtsContent.indexOf(`/// `) !== -1);
- assert(dtsContent.indexOf(`/// `) !== -1);
+ let generatedBundle = fs.readFileSync(dtsPath, "utf8");
+ let expectedBundle = bundleBuilder([
+ "../../node_modules/commandpost/commandpost.d.ts",
+ "../../node_modules/fs-git/fs-git.d.ts",
+ "../../node_modules/packagemanager-backend/packagemanager-backend.d.ts",
+ ]);
+ assert(generatedBundle === expectedBundle);
});
});
});