Bru Lang Playground

Bru

Loading editor...

meta: {
  name: Create User
  type: http
  seq: 1
}

http: {
  method: POST
  url: https://www.usebruno.com/api/v1/users
  headers: {
    Content-Type: application/json
  }
  body: {
    type: json
    data: '''
      {
        "email": "admin@usebruno.com",
        "password": "password"
      }
    '''
  }
}

pre-request-script: '''
  bru.setHeader('Authorization', 'Bearer ' + bru.getEnvVar('token'))
'''

tests: '''
  test("should create a user", () => {
    expect(res.getStatus()).to.equal(200);
  });

  test("should return a user", () => {
    const data = res.getBody();
    expect(data).to.have.property('id');
    expect(data).to.have.property('email');
  }
'''

AST

Loading editor...

{
  "type": "multimap",
  "value": [
    {
      "type": "pair",
      "key": "meta",
      "value": {
        "type": "multimap",
        "value": [
          {
            "type": "pair",
            "key": "name",
            "value": "Create User"
          },
          {
            "type": "pair",
            "key": "type",
            "value": "http"
          },
          {
            "type": "pair",
            "key": "seq",
            "value": 1
          }
        ]
      }
    },
    {
      "type": "pair",
      "key": "http",
      "value": {
        "type": "multimap",
        "value": [
          {
            "type": "pair",
            "key": "method",
            "value": "POST"
          },
          {
            "type": "pair",
            "key": "url",
            "value": "https://www.usebruno.com/api/v1/users"
          },
          {
            "type": "pair",
            "key": "headers",
            "value": {
              "type": "multimap",
              "value": [
                {
                  "type": "pair",
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          {
            "type": "pair",
            "key": "body",
            "value": {
              "type": "multimap",
              "value": [
                {
                  "type": "pair",
                  "key": "type",
                  "value": "json"
                },
                {
                  "type": "pair",
                  "key": "data",
                  "value": {
                    "type": "multistring",
                    "value": [
                      "{",
                      "  \"email\": \"admin@usebruno.com\",",
                      "  \"password\": \"password\"",
                      "}"
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "pair",
      "key": "pre-request-script",
      "value": {
        "type": "multistring",
        "value": [
          "bru.setHeader('Authorization', 'Bearer ' + bru.getEnvVar('token'))"
        ]
      }
    },
    {
      "type": "pair",
      "key": "tests",
      "value": {
        "type": "multistring",
        "value": [
          "test(\"should create a user\", () => {",
          "  expect(res.getStatus()).to.equal(200);",
          "});",
          "test(\"should return a user\", () => {",
          "  const data = res.getBody();",
          "  expect(data).to.have.property('id');",
          "  expect(data).to.have.property('email');",
          "}"
        ]
      }
    }
  ]
}