mirror of
https://github.com/Shiva108/ai-llm-red-team-handbook.git
synced 2026-08-29 22:30:34 +02:00
134 lines
4.2 KiB
JavaScript
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);
|
|
});
|
|
});
|
|
});
|
|
});
|