Files
herolib/lib/core/playbook/parser_test.v
2024-12-25 08:40:56 +01:00

57 lines
1.5 KiB
V

module playbook
const text1 = "
//comment for the action
!!payment.add person:fatayera
//comment for name
name: 'TF Wallet'
blockchain: 'stellar' //holochain maybe?
account: 'something'
description: 'TF Wallet for TFT'
preferred: false
"
fn test_parse_1() {
mut a := new(text: text1) or { panic(err) }
assert a.actions.len == 1
mut s := a.actions_sorted()!
assert s.len == 1
// mut sorted := a.actions_sorted(prio_only: true)!
// assert sorted.len == 0
mut myaction := s[0] or { panic('bug') }
assert myaction.comments == 'comment for the action'
assert myaction.params.params.len == 6
assert myaction.id == 1
assert a.hashkey() == '95c585c8bf01b4c432cb7096dc7c974fc1a14b5a'
c := a.heroscript()!
b := new(text: c) or { panic(err) }
assert b.hashkey() == '95c585c8bf01b4c432cb7096dc7c974fc1a14b5a'
}
fn test_parser() {
mut pb := new(text: text1) or { panic(err) }
mut a := pb.actions[0]
assert a.actor == 'payment'
assert a.name == 'add'
assert a.params.get('name')! == 'TF Wallet'
assert a.params.get('blockchain')! == 'stellar'
assert a.params.get('account')! == 'something'
assert a.params.get('description')! == 'TF Wallet for TFT'
assert a.params.get_default_false('preferred') == false
}
fn test_parser2() {
mut pb := new(
text: "!!play.run url:'https://git.ourworld.tf/despiegk/cfg/src/branch/main/myit/hetzner.md'"
) or { panic(err) }
mut a := pb.actions[0]
assert a.actor == 'play'
assert a.name == 'run'
assert a.params.get('url')! == 'https://git.ourworld.tf/despiegk/cfg/src/branch/main/myit/hetzner.md'
}