Merge pull request 'Passing null to a function triggers default value' (#41) from null-triggers-default-values into main
Reviewed-on: #41
This commit is contained in:
commit
fe6f54b402
|
|
@ -10,7 +10,7 @@
|
||||||
"repl": "bun generate-parser && bun bin/repl",
|
"repl": "bun generate-parser && bun bin/repl",
|
||||||
"update-reef": "rm -rf ~/.bun/install/cache/ && rm bun.lock && bun update reefvm",
|
"update-reef": "rm -rf ~/.bun/install/cache/ && rm bun.lock && bun update reefvm",
|
||||||
"cli:install": "ln -s \"$(pwd)/bin/shrimp\" ~/.bun/bin/shrimp",
|
"cli:install": "ln -s \"$(pwd)/bin/shrimp\" ~/.bun/bin/shrimp",
|
||||||
"cli:remove": "rm ~/.bun/bin/shrimp",
|
"cli:remove": "rm ~/.bun/bin/shrimp"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codemirror/view": "^6.38.3",
|
"@codemirror/view": "^6.38.3",
|
||||||
|
|
|
||||||
|
|
@ -301,6 +301,23 @@ describe('default params', () => {
|
||||||
expect('multiply = do x y=5: x * y end; multiply 5 2').toEvaluateTo(10)
|
expect('multiply = do x y=5: x * y end; multiply 5 2').toEvaluateTo(10)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('null triggers default value', () => {
|
||||||
|
expect('test = do n=true: n end; test').toEvaluateTo(true)
|
||||||
|
expect('test = do n=true: n end; test false').toEvaluateTo(false)
|
||||||
|
expect('test = do n=true: n end; test null').toEvaluateTo(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('null triggers default for named parameters', () => {
|
||||||
|
expect("greet = do name='World': name end; greet name=null").toEvaluateTo('World')
|
||||||
|
expect("greet = do name='World': name end; greet name='Bob'").toEvaluateTo('Bob')
|
||||||
|
})
|
||||||
|
|
||||||
|
test('null triggers default with multiple parameters', () => {
|
||||||
|
expect('calc = do x=10 y=20: x + y end; calc null 5').toEvaluateTo(15)
|
||||||
|
expect('calc = do x=10 y=20: x + y end; calc 3 null').toEvaluateTo(23)
|
||||||
|
expect('calc = do x=10 y=20: x + y end; calc null null').toEvaluateTo(30)
|
||||||
|
})
|
||||||
|
|
||||||
test.skip('array default', () => {
|
test.skip('array default', () => {
|
||||||
expect('abc = do alpha=[a b c]: alpha end; abc').toEvaluateTo(['a', 'b', 'c'])
|
expect('abc = do alpha=[a b c]: alpha end; abc').toEvaluateTo(['a', 'b', 'c'])
|
||||||
expect('abc = do alpha=[a b c]: alpha end; abc [x y z]').toEvaluateTo(['x', 'y', 'z'])
|
expect('abc = do alpha=[a b c]: alpha end; abc [x y z]').toEvaluateTo(['x', 'y', 'z'])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user