Skip to content

Commit

Permalink
Improve path validation for multi-tenant Lambdae
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanblock committed Jun 21, 2023
1 parent 88104be commit dbbd08b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 6 deletions.
8 changes: 8 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

---

## [3.5.6] 2023-06-21

### Fixed

- Improved path validation for multi-tenant Lambdae

---

## [3.5.5] 2023-06-15

### Changed
Expand Down
13 changes: 8 additions & 5 deletions src/validate/paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,14 @@ module.exports = function checkFilePaths (inventory, errors) {
if (!ascii.test(proj.src)) return err('Project source')
if (proj.build && !ascii.test(proj.build)) return err('Build')

let lambdas = inventory.lambdasBySrcDir
if (lambdas){
Object.values(lambdas).forEach(lambda => {
let { name, pragma, src } = lambda
if (!ascii.test(src)) err(`@${pragma} ${name} source`)
let { lambdasBySrcDir } = inventory
if (lambdasBySrcDir){
Object.values(lambdasBySrcDir).forEach(lambdae => {
if (!Array.isArray(lambdae)) lambdae = [ lambdae ] // Normalize possible multi-tenant Lambdas
lambdae.forEach(lambda => {
let { name, pragma, src } = lambda
if (!ascii.test(src)) err(`@${pragma} ${name} source`)
})
})
}
}
6 changes: 5 additions & 1 deletion test/unit/src/validate/paths-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ test('Do nothing', t => {
})

test('Valid paths', t => {
t.plan(5)
t.plan(6)

defaults._project.cwd = '/foo'
validatePaths(defaults, errors)
Expand All @@ -45,6 +45,10 @@ test('Valid paths', t => {
validatePaths(defaults, errors)
t.equal(errors.length, 0, `No errors reported`)

defaults.lambdasBySrcDir = [ [ { src: '/foo/lambda' }, { src: '/foo/lambda' } ] ]
validatePaths(defaults, errors)
t.equal(errors.length, 0, `No errors reported`)

defaults._project.cwd = '/~why/!hello/`there/@strange/#path/$name'
validatePaths(defaults, errors)
t.equal(errors.length, 0, `No errors reported`)
Expand Down

0 comments on commit dbbd08b

Please sign in to comment.