Skip to content

Commit 88d9eed

Browse files
committed
Merge pull request #62 from dcaravana/master
added package_folder option to lambda_invoke task
2 parents 6f16f0e + e7d2f3a commit 88d9eed

File tree

6 files changed

+59
-2
lines changed

6 files changed

+59
-2
lines changed

Gruntfile.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ module.exports = function (grunt) {
4949
event: 'test/fixtures/event.json',
5050
handler: 'myfunction'
5151
}
52+
},
53+
package_folder_options: {
54+
options: {
55+
package_folder: 'test/fixtures/package_folder_option',
56+
file_name: 'index.js',
57+
event: '../../../test/fixtures/event.json'
58+
}
5259
}
5360
},
5461
lambda_package: {

tasks/lambda_invoke.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ module.exports = function (grunt) {
1313
var path = require('path');
1414
var fs = require('fs');
1515

16-
1716
// Please see the Grunt documentation for more information regarding task
1817
// creation: http://gruntjs.com/creating-tasks
1918

2019
grunt.registerMultiTask('lambda_invoke', 'Invokes a lambda function for testing purposes', function () {
2120

2221
var options = this.options({
22+
'package_folder': './',
2323
'handler': 'handler',
2424
'file_name': 'index.js',
2525
'event': 'event.json',
@@ -82,10 +82,19 @@ module.exports = function (grunt) {
8282
identity: identity
8383
};
8484

85+
var cwd;
86+
if(options.package_folder) {
87+
cwd = process.cwd();
88+
process.chdir(path.resolve(options.package_folder));
89+
}
90+
8591
var lambda = require(path.resolve(options.file_name));
8692
var event = JSON.parse(fs.readFileSync(path.resolve(options.event), "utf8"));
8793
lambda[options.handler](event, context);
88-
94+
95+
if(cwd) {
96+
process.chdir(cwd);
97+
}
8998
});
9099

91100
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello World
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
exports.handler = function (event, context) {
2+
context.done(null, process.cwd());
3+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "my-lambda-function",
3+
"description": "An Example Lamda Function",
4+
"version": "0.0.1",
5+
"private": "true",
6+
"dependencies": {
7+
},
8+
"devDependencies": {
9+
},
10+
"bundledDependencies": [
11+
]
12+
}

test/lambda_invoke_test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
var grunt = require('grunt');
4+
var path = require('path');
45

56
/*
67
======== A Handy Little Nodeunit Reference ========
@@ -70,6 +71,30 @@ exports.lambda_invoke = {
7071
var expected = getNormalizedFile('test/expected/failure_options');
7172
var actual = grunt.util.normalizelf(result.stdout);
7273
test.equal(actual, expected);
74+
test.done();
75+
});
76+
},
77+
package_folder_options: function (test) {
78+
test.expect(2);
79+
80+
grunt.util.spawn({
81+
grunt: true,
82+
args: ['lambda_invoke:package_folder_options', '--no-color']
83+
}, function (err, result, code) {
84+
85+
var cwd = process.cwd();
86+
87+
// test cwd inside the function
88+
var expected_cwd = 'Running "lambda_invoke:package_folder_options" (lambda_invoke) task\n\n\nSuccess! Message:\n------------------\n' +
89+
path.join(cwd, 'test/fixtures/package_folder_option') +
90+
'\n\nDone, without errors.';
91+
92+
var actual_cwd = grunt.util.normalizelf(result.stdout);
93+
test.equal(actual_cwd, expected_cwd);
94+
95+
// test back from the function
96+
test.equal(process.cwd(), cwd);
97+
7398
test.done();
7499
});
75100
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy