Merge pull request #727 from TomMcHugh/master

[CLI] Adds Testing to CLI
This commit is contained in:
Tadeu Zagallo 2015-06-11 22:23:47 +01:00
Родитель 643d292099 800502f2a0
Коммит 7c49d293f1
2 изменённых файлов: 56 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,44 @@
'use strict';
jest.dontMock('../install');
jest.dontMock('fs');
jest.dontMock('path');
var install = require('../install.js');
var openingReactTag = '#<React-Native>';
var closingReactTag = '#</React-Native>';
var fs = require.requireActual('fs');
var path = require.requireActual('path');
process.chdir(__dirname);
describe('setup Podfile', function() {
it('creates a Podfile if none exists', function() {
try {
fs.unlinkSync(path.resolve(__dirname, 'Podfile'));
} catch(e) {}
var setupPodfile = install.setupPodfile();
expect(setupPodfile.created).toBe(true);
});
it('does not create Podfile if one exists', function() {
var setupPodfile = install.setupPodfile();
expect(setupPodfile.created).toBe(false);
});
it('includes React Native Tags', function() {
var setupPodfile = install.setupPodfile();
expect(setupPodfile.podfileText).toContain(openingReactTag);
expect(setupPodfile.podfileText).toContain(closingReactTag);
try {
fs.unlinkSync(path.resolve(__dirname, 'Podfile'));
} catch(e) {}
});
});

Просмотреть файл

@ -5,11 +5,12 @@
'use strict'; 'use strict';
var fs = require('fs'); var fs = require('fs');
var path = require('path');
var exec = require('child_process').exec; var exec = require('child_process').exec;
var NODE_MODULE_PATH = './node_modules'; var NODE_MODULE_PATH = path.resolve(__dirname, 'node_modules');
var PODFILE_PATH = './Podfile'; var PODFILE_PATH = path.resolve(__dirname, 'Podfile');
function addDependency(name, path) { function addDependency(name, path) {
console.log('Found dependency: ' + name); console.log('Found dependency: ' + name);
@ -48,6 +49,10 @@ function installDependecies() {
module.exports = { module.exports = {
setupPodfile: function() { setupPodfile: function() {
var returnArgs = {
created: false
};
var podfileText; var podfileText;
try { try {
podfileText = fs.readFileSync(PODFILE_PATH, 'utf8'); podfileText = fs.readFileSync(PODFILE_PATH, 'utf8');
@ -58,6 +63,7 @@ module.exports = {
var reactPodfileBoilerplate = openingReactTag + closingReactTag; var reactPodfileBoilerplate = openingReactTag + closingReactTag;
if (!podfileText) { if (!podfileText) {
returnArgs.created = true;
fs.appendFileSync(PODFILE_PATH, reactPodfileBoilerplate); fs.appendFileSync(PODFILE_PATH, reactPodfileBoilerplate);
} else { } else {
if (podfileText.indexOf(openingReactTag) === -1 || podfileText.indexOf(closingReactTag) === -1) { if (podfileText.indexOf(openingReactTag) === -1 || podfileText.indexOf(closingReactTag) === -1) {
@ -67,6 +73,7 @@ module.exports = {
try { try {
podfileText = fs.readFileSync(PODFILE_PATH, 'utf8'); podfileText = fs.readFileSync(PODFILE_PATH, 'utf8');
returnArgs.podfileText = podfileText;
} catch(e) {} } catch(e) {}
if (podfileText.indexOf('pod \'React\'') === -1) { if (podfileText.indexOf('pod \'React\'') === -1) {
@ -79,10 +86,13 @@ module.exports = {
podfileText.slice(indexOfReactComponents)].join(''); podfileText.slice(indexOfReactComponents)].join('');
fs.writeFileSync(PODFILE_PATH, newPodfileText); fs.writeFileSync(PODFILE_PATH, newPodfileText);
returnArgs.podfileText = newPodfileText;
} catch(e) { } catch(e) {
throw e; throw e;
} }
} }
return returnArgs;
}, },
init: function(arguement) { init: function(arguement) {
// arguement is available for future arguement commands // arguement is available for future arguement commands