Files
ai-llm-red-team-handbook/node_modules/gitbook-cli/test/versions.js
T
2026-01-23 15:09:56 +01:00

134 lines
4.2 KiB
JavaScript

var path = require('path');
var should = require('should');
var manager = require('../lib');
describe('Versions', function() {
this.timeout(100000);
describe('.available()', function() {
var result;
before(function() {
return manager.available()
.then(function(versions) {
result = versions;
});
});
it('should correctly return a list of versions', function() {
result.should.have.properties('versions');
result.versions.should.be.an.Array();
});
it('should correctly return a map of tags', function() {
result.should.have.properties('tags');
result.tags.should.have.properties('latest');
});
});
describe('.install()', function() {
var result;
before(function() {
return manager.install('2.0.0')
.then(function(version) {
result = version;
});
});
it('should correctly return the installed version', function() {
result.should.be.a.String();
result.should.equal('2.0.0');
});
});
describe('.ensure()', function() {
it('should correctly return installed version', function() {
return manager.ensure(__dirname)
.then(function(v) {
v.should.have.properties('version', 'path');
v.version.should.equal('2.0.0');
});
});
it('should correctly install version specified', function() {
return manager.ensure(path.resolve(__dirname, 'fixtures/book1'))
.then(function(v) {
v.should.have.properties('version', 'path');
v.version.should.equal('3.0.0-pre.2');
});
});
});
describe('.list()', function() {
var result;
before(function() {
result = manager.versions();
});
it('should correctly return the installed version', function() {
result.should.be.an.Array();
result.should.have.lengthOf(2);
result[0].should.have.properties('name', 'tag', 'version', 'path');
result[0].version.should.equal('3.0.0-pre.2');
result[1].should.have.properties('name', 'tag', 'version', 'path');
result[1].version.should.equal('2.0.0');
});
});
describe('.link()', function() {
var localGitbook = path.resolve(__dirname, '../node_modules/gitbook');
before(function() {
return manager.link('latest', localGitbook);
});
it('should correctly list latest version', function() {
var result = manager.versions();
result.should.have.lengthOf(3);
result[1].should.have.properties('version', 'path');
result[1].tag.should.equal('beta');
result[1].name.should.equal('latest');
result[1].link.should.equal(localGitbook);
});
it('should correctly return latest version as default one', function() {
return manager.get(__dirname)
.then(function(version) {
version.name.should.equal('latest');
});
});
});
describe('.ensureAndLoad()', function() {
it('should correctly return gitbook instance', function() {
return manager.ensureAndLoad(__dirname)
.then(function(gitbook) {
gitbook.should.be.an.Object();
gitbook.should.have.properties('commands');
gitbook.commands.should.be.an.Array();
});
});
});
describe('.uninstall()', function() {
it('should correctly remove a specific version', function() {
return manager.uninstall('2.0.0')
.then(function() {
var result = manager.versions();
result.should.have.lengthOf(2);
});
});
it('should correctly remove a version by tag', function() {
return manager.uninstall('latest')
.then(function() {
var result = manager.versions();
result.should.have.lengthOf(1);
});
});
});
});