more tests
This commit is contained in:
parent
5ba5b22df1
commit
91c2dbe8f2
3 changed files with 49 additions and 4 deletions
|
@ -48,6 +48,7 @@
|
|||
"gulp-filter": "^3.0.1",
|
||||
"gulp-tsb": "^1.6.0",
|
||||
"mocha": "^2.3.3",
|
||||
"rimraf": "^2.4.3"
|
||||
"rimraf": "^2.4.3",
|
||||
"xml2js": "^0.4.12"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ function prepublish(cwd: string, manifest: Manifest): Promise<Manifest> {
|
|||
.catch(err => Promise.reject(err.message));
|
||||
}
|
||||
|
||||
function toVsixManifest(manifest: Manifest): Promise<string> {
|
||||
export function toVsixManifest(manifest: Manifest): Promise<string> {
|
||||
return readFile(vsixManifestTemplatePath, 'utf8')
|
||||
.then(vsixManifestTemplateStr => _.template(vsixManifestTemplateStr))
|
||||
.then(vsixManifestTemplate => vsixManifestTemplate({
|
||||
|
@ -91,7 +91,8 @@ function toVsixManifest(manifest: Manifest): Promise<string> {
|
|||
version: manifest.version,
|
||||
publisher: manifest.publisher,
|
||||
description: manifest.description || '',
|
||||
tags: (manifest.keywords || []).concat('vscode').join(';')
|
||||
tags: (manifest.keywords || []).concat('vscode').join(';'),
|
||||
assets: []
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
/*global describe,it*/
|
||||
|
||||
import { readManifest, collect } from '../out/package';
|
||||
import { readManifest, collect, toVsixManifest } from '../out/package';
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
import * as assert from 'assert';
|
||||
import { parseString } from 'xml2js';
|
||||
import * as _denodeify from 'denodeify';
|
||||
const denodeify = _denodeify['default'];
|
||||
const parseXml = denodeify(parseString);
|
||||
|
||||
const fixture = name => path.join(__dirname, 'fixtures', name);
|
||||
|
||||
|
@ -54,4 +58,43 @@ describe('collect', () => {
|
|||
})
|
||||
.catch(cb);
|
||||
});
|
||||
});
|
||||
|
||||
describe('toVsixManifest', () => {
|
||||
it('should produce a good xml', () => {
|
||||
const manifest = {
|
||||
name: 'test',
|
||||
publisher: 'mocha',
|
||||
version: '0.0.1',
|
||||
description: 'test extension'
|
||||
};
|
||||
|
||||
return toVsixManifest(manifest)
|
||||
.then(xml => parseXml(xml))
|
||||
.then(result => {
|
||||
assert.ok(result);
|
||||
assert.ok(result.PackageManifest);
|
||||
assert.ok(result.PackageManifest.$);
|
||||
assert.equal(result.PackageManifest.$.Version, '2.0.0');
|
||||
assert.equal(result.PackageManifest.$.xmlns, 'http://schemas.microsoft.com/developer/vsx-schema/2011');
|
||||
assert.equal(result.PackageManifest.$['xmlns:d'], 'http://schemas.microsoft.com/developer/vsx-schema-design/2011');
|
||||
assert.ok(result.PackageManifest.Metadata);
|
||||
assert.equal(result.PackageManifest.Metadata.length, 1);
|
||||
assert.equal(result.PackageManifest.Metadata[0].Description[0]._, 'test extension');
|
||||
assert.equal(result.PackageManifest.Metadata[0].DisplayName[0], 'test');
|
||||
assert.equal(result.PackageManifest.Metadata[0].Identity[0].$.Id, 'test');
|
||||
assert.equal(result.PackageManifest.Metadata[0].Identity[0].$.Version, '0.0.1');
|
||||
assert.equal(result.PackageManifest.Metadata[0].Identity[0].$.Publisher, 'mocha');
|
||||
assert.deepEqual(result.PackageManifest.Metadata[0].Tags, ['vscode']);
|
||||
assert.deepEqual(result.PackageManifest.Metadata[0].GalleryFlags, ['Public']);
|
||||
assert.equal(result.PackageManifest.Installation.length, 1);
|
||||
assert.equal(result.PackageManifest.Installation[0].InstallationTarget.length, 1);
|
||||
assert.equal(result.PackageManifest.Installation[0].InstallationTarget[0].$.Id, 'Microsoft.VisualStudio.Code');
|
||||
assert.deepEqual(result.PackageManifest.Dependencies, ['']);
|
||||
assert.equal(result.PackageManifest.Assets.length, 1);
|
||||
assert.equal(result.PackageManifest.Assets[0].Asset.length, 1);
|
||||
assert.equal(result.PackageManifest.Assets[0].Asset[0].$.Type, 'Microsoft.VisualStudio.Code.Manifest');
|
||||
assert.equal(result.PackageManifest.Assets[0].Asset[0].$.Path, 'extension/package.json');
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Reference in a new issue