UNPKG

generator-joomla-spc

Version:

Joomla-spc generator for Yeoman. Creates Joomla 2.5 and 3.0 files

119 lines (111 loc) 2.64 kB
/*global describe, beforeEach, it*/ 'use strict'; var path = require('path'), helpers = require('yeoman-generator').test, slugify = require('slugify'); describe('joomla-spc generator', function () { var generatorDefaults = { 'description': 'A sample description', 'componentName': 'A component name', 'authorName': 'Test author name', 'authorEmail': 'testemail@gmail.com', 'authorURL': 'testauthor@testauthor.com', 'license': 'MIT', 'legacyJoomla': true, 'requireManageRights': true }; beforeEach(function (done) { helpers.testDirectory(path.join(__dirname, './temp'), function (err) { if (err) { return done(err); } this.app = helpers.createGenerator('joomla-spc:app', [ '../../app' ]); done(); }.bind(this)); }); it('creates expected config files', function (done) { var expected = [ '.jshintrc', '.editorconfig', 'bower.json', 'config.xml', 'access.xml', 'package.json', slugify(generatorDefaults.componentName) + '.xml' ]; helpers.mockPrompt(this.app, generatorDefaults); this.app.options['skip-install'] = true; this.app.run({}, function () { helpers.assertFiles(expected); done(); }); }); it('creates php files', function () { //arrange //act //assert var done; done = this.async(); helpers.mockPrompt(this.app, generatorDefaults); this.app.options['skip-install'] = true; this.app.run({}, function () { helpers.assertFiles([ this._.slugify(this.componentName) + '.php', 'sql/install.mysql.utf8.sql', 'sql/uninstall.mysql.utf8.sql', 'install-uninstall.php' ]); done(); }); }); it('creates empty mvc folders', function () { //arrange var expectedFolders = [ 'controllers', 'helpers', 'models', 'sql', 'tables', 'views' ]; //act //assert var done; done = this.async(); helpers.mockPrompt(this.app, generatorDefaults); this.app.options['skip-install'] = true; this.app.run({}, function () { helpers.assertFiles(expectedFolders); done(); }); }); it('creates language files', function () { //arrange var preferredLanguage = 'en-GB', expectedLanguageFiles = [ 'languages/' + preferredLanguage + '/' + preferredLanguage + '.com_' + this.componentName + '.ini', 'languages/' + preferredLanguage + '/' + preferredLanguage + '.com_' + this.componentName + '.sys.ini' ]; //act //assert var done; done = this.async(); helpers.mockPrompt(this.app, generatorDefaults); this.app.options['skip-install'] = true; this.app.run({}, function () { helpers.assertFiles(expectedLanguageFiles); done(); }); }); });