57 lines
1.5 KiB
V
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'
|
|
}
|