Flows › DomEngine e91176227

Story:alerts 7 expects pass

· 13 ms · specs: Spec:alerts, Spec:drill-results, Spec:hello, Spec:mining-domain, Spec:order, Spec:rebalance, Spec:ledger-spec

Open in fiddleStory topicJSON
Expects
✓8payload == ["boiler"]
✓9sizeOf(sent) is 1
✓10sent[0].text is "over 60.0: boiler"
✓15sizeOf(sent) is 3
✓16sent[-1].to is "manager"
✓21payload is "all normal"
✓22sizeOf(sent) is 3
Resulting value (payload)
"all normal"
Flow values (ctx)
{
  "sent": [
    {
      "to": "on-call",
      "text": "over 60.0: boiler"
    },
    {
      "to": "on-call",
      "text": "over 60.0: boiler, attic"
    },
    {
      "to": "manager",
      "text": "critical: boiler, attic"
    }
  ]
}
Trace
msgalerts.check(readings=[{sensor: "boiler", value: 71.5}, {sensor: "attic", value: 22.0}], limit=60.0)line 7
rulerule alerts.check (line 5)line 5
valhigh = [{sensor: "boiler", value: 71.5}]line 6
valnames = "boiler"line 10
msgalerts.notify(to="on-call", text="over 60.0: boiler")line 11
rulerule alerts.notify (line 21)line 21
valctx.sent = [{to: "on-call", text: "over 60.0: boiler"}]line 22
valpayload = ["boiler"]line 15
expectpayload == ["boiler"] ✓line 8
expectsizeOf(sent) is 1 ✓line 9
expectsent[0].text is "over 60.0: boiler" ✓line 10
msgalerts.check(readings=[{sensor: "boiler", value: 130.0}, {sensor: "attic", value: 64.0}], limit=60.0)line 14
rulerule alerts.check (line 5)line 5
valhigh = [{sensor: "boiler", value: 130.0}, {sensor: "attic", value: 64.0}]line 6
valnames = "boiler, attic"line 10
msgalerts.notify(to="on-call", text="over 60.0: boiler, attic")line 11
rulerule alerts.notify (line 21)line 21
valctx.sent = [{to: "on-call", text: "over 60.0: boiler"}, {to: "on-call", text: "over 60.0: boiler, attic"}]line 22
msgalerts.notify(to="manager", text="critical: boiler, attic")line 13
rulerule alerts.notify (line 21)line 21
valctx.sent = [{to: "on-call", text: "over 60.0: boiler"}, {to: "on-call", text: "over 60.0: boiler, attic"}, {to: "manager", text: "critical: boiler, attic"}]line 22
valpayload = ["boiler", "attic"]line 15
expectsizeOf(sent) is 3 ✓line 15
expectsent[-1].to is "manager" ✓line 16
msgalerts.check(readings=[{sensor: "attic", value: 20.0}], limit=60.0)line 20
rulerule alerts.check (line 5)line 5
valhigh = []line 6
valpayload = "all normal"line 8
expectpayload is "all normal" ✓line 21
expectsizeOf(sent) is 3 ✓line 22
Story syntax tree
$send alerts.check (readings = [{sensor: "boiler", value: 71.5}, {sensor: "attic", value: 22.0}], limit = 60.0)
{
  "src": "$send alerts.check (readings = [{sensor: \"boiler\", value: 71.5}, {sensor: \"attic\", value: 22.0}], limit = 60.0)",
  "k": "step",
  "stmt": {
    "k": "send",
    "msg": "alerts.check",
    "args": [
      {
        "name": "readings",
        "e": {
          "k": "arr",
          "items": [
            {
              "k": "obj",
              "fields": [
                {
                  "key": "sensor",
                  "e": {
                    "k": "str",
                    "parts": [
                      "boiler"
                    ]
                  }
                },
                {
                  "key": "value",
                  "e": {
                    "k": "lit",
                    "v": 71.5
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "sensor",
                  "e": {
                    "k": "str",
                    "parts": [
                      "attic"
                    ]
                  }
                },
                {
                  "key": "value",
                  "e": {
                    "k": "lit",
                    "v": 22
                  }
                }
              ]
            }
          ]
        }
      },
      {
        "name": "limit",
        "e": {
          "k": "lit",
          "v": 60
        }
      }
    ]
  }
}
payload == ["boiler"]
{
  "src": "payload == [\"boiler\"]",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "ref",
      "name": "payload"
    },
    "r": {
      "k": "arr",
      "items": [
        {
          "k": "str",
          "parts": [
            "boiler"
          ]
        }
      ]
    }
  }
}
sizeOf(sent) is 1
{
  "src": "sizeOf(sent) is 1",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "call",
      "tool": "sizeOf",
      "args": [
        {
          "name": "sent",
          "e": {
            "k": "ref",
            "name": "sent"
          },
          "shorthand": true
        }
      ]
    },
    "r": {
      "k": "lit",
      "v": 1
    }
  }
}
sent[0].text is "over 60.0: boiler"
{
  "src": "sent[0].text is \"over 60.0: boiler\"",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "index",
        "obj": {
          "k": "ref",
          "name": "sent"
        },
        "idx": {
          "k": "lit",
          "v": 0
        }
      },
      "name": "text",
      "safe": false
    },
    "r": {
      "k": "str",
      "parts": [
        "over 60.0: boiler"
      ]
    }
  }
}
$send alerts.check (readings = [{sensor: "boiler", value: 130.0}, {sensor: "attic", value: 64.0}], limit = 60.0)
{
  "src": "$send alerts.check (readings = [{sensor: \"boiler\", value: 130.0}, {sensor: \"attic\", value: 64.0}], limit = 60.0)",
  "k": "step",
  "stmt": {
    "k": "send",
    "msg": "alerts.check",
    "args": [
      {
        "name": "readings",
        "e": {
          "k": "arr",
          "items": [
            {
              "k": "obj",
              "fields": [
                {
                  "key": "sensor",
                  "e": {
                    "k": "str",
                    "parts": [
                      "boiler"
                    ]
                  }
                },
                {
                  "key": "value",
                  "e": {
                    "k": "lit",
                    "v": 130
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "sensor",
                  "e": {
                    "k": "str",
                    "parts": [
                      "attic"
                    ]
                  }
                },
                {
                  "key": "value",
                  "e": {
                    "k": "lit",
                    "v": 64
                  }
                }
              ]
            }
          ]
        }
      },
      {
        "name": "limit",
        "e": {
          "k": "lit",
          "v": 60
        }
      }
    ]
  }
}
sizeOf(sent) is 3
{
  "src": "sizeOf(sent) is 3",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "call",
      "tool": "sizeOf",
      "args": [
        {
          "name": "sent",
          "e": {
            "k": "ref",
            "name": "sent"
          },
          "shorthand": true
        }
      ]
    },
    "r": {
      "k": "lit",
      "v": 3
    }
  }
}
sent[-1].to is "manager"
{
  "src": "sent[-1].to is \"manager\"",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "index",
        "obj": {
          "k": "ref",
          "name": "sent"
        },
        "idx": {
          "k": "unary",
          "op": "-",
          "e": {
            "k": "lit",
            "v": 1
          }
        }
      },
      "name": "to",
      "safe": false
    },
    "r": {
      "k": "str",
      "parts": [
        "manager"
      ]
    }
  }
}
$send alerts.check (readings = [{sensor: "attic", value: 20.0}], limit = 60.0)
{
  "src": "$send alerts.check (readings = [{sensor: \"attic\", value: 20.0}], limit = 60.0)",
  "k": "step",
  "stmt": {
    "k": "send",
    "msg": "alerts.check",
    "args": [
      {
        "name": "readings",
        "e": {
          "k": "arr",
          "items": [
            {
              "k": "obj",
              "fields": [
                {
                  "key": "sensor",
                  "e": {
                    "k": "str",
                    "parts": [
                      "attic"
                    ]
                  }
                },
                {
                  "key": "value",
                  "e": {
                    "k": "lit",
                    "v": 20
                  }
                }
              ]
            }
          ]
        }
      },
      {
        "name": "limit",
        "e": {
          "k": "lit",
          "v": 60
        }
      }
    ]
  }
}
payload is "all normal"
{
  "src": "payload is \"all normal\"",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "ref",
      "name": "payload"
    },
    "r": {
      "k": "str",
      "parts": [
        "all normal"
      ]
    }
  }
}
sizeOf(sent) is 3
{
  "src": "sizeOf(sent) is 3",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "call",
      "tool": "sizeOf",
      "args": [
        {
          "name": "sent",
          "e": {
            "k": "ref",
            "name": "sent"
          },
          "shorthand": true
        }
      ]
    },
    "r": {
      "k": "lit",
      "v": 3
    }
  }
}