«

POST /api/M26/clans - Tạo phường

Request body: { "name": "Tên Phường", "description": "Mô tả Phường", "requestRequired": true }

  • Tags: @AUTOMATED, @TNK-8037

    Trả về lỗi 401 khi gửi request tạo phường mà không có token

    • Given Request có header là
      X-Tenantm26
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 401
  • Tags: @AUTOMATED, @TNK-8037

    Trả về lỗi 401 khi gửi request tạo phường với token không hợp lệ

    • Given Request có header là
      X-Tenantm26
    • And Token đã hết hạn
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 401
  • Tags: @AUTOMATED, @TNK-8037

    Trả về lỗi 400 khi gửi request tạo phường mà không gửi kèm header X-Tenant

    • Given Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Bad Request",
        "detail": "Required header 'X-Tenant' is not present."
      }
  • Tags: @AUTOMATED, @TNK-8037

    Trả về 200 và response rỗng khi gửi request tạo phường với header không hợp lệ

    • Given Request có header là
      X-Tenant<header>
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 200
    • And Response trả về rỗng

    Examples:

    header
    linhtinh
  • Tags: @AUTOMATED, @TNK-8037

    Trả về lỗi 400 khi gửi request tạo phường thiếu trường bắt buộc (name)

    • Given Khách hàng "userclan" chưa là thành viên của phường nào
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        <name>
        "description": "Hôm nay trời nắng, mình lập hội chơi chơi"
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "Constraint Violation",
        "violations": [
          {
              "field": "name",
              "message": "Tên Phường không được để trống"
          }
        ]
      }

    Examples:

    name
    "name": null,
  • Tags: @AUTOMATED, @TNK-8037

    Trả về lỗi 400 khi gửi request tạo phường với dữ liệu không hợp lệ:

    • tên phường giới hạn 100 ký tự
    • mô tả giới hạn 255 ký gửi
    • Given Khách hàng "userclan" chưa là thành viên của phường nào
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "<name>",
        "description": "<description>"
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
      "title": "Constraint Violation",
      "violations": [
          {
              "field": "<field>",
              "message": "<message_error>"
          }
      ]
      }

    Examples:

    name description field message_error
    Phường Natra It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here'. description Mô tả Phường không được vượt quá 254 ký tự
    Phường mới ra mắt!! Đăng ký nhanh tay, số lượng có hạn! Chỉ một đêm duy nhất, chỉ một đêm duy nhất!!! Hôm nay trời nắng, mình lập hội chơi chơi name Tên Phường không được vượt quá 100 ký tự
  • Tags: @AUTOMATED, @TNK-8037

    Trả về 200 khi gửi request tạo phường với dữ liệu hợp lệ. Người tạo là chủ phường. Có log khi tạo phường thành công

    • Given Khách hàng "userclan" chưa là thành viên của phường nào
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra",
        "description": <description>
      }
    • Then Tôi nhận được response có HTTP Status 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "name": "Phường Natra",
        "description": <description>,
        "owner": "userclan"
      }
    • And Phường vừa tạo có mã "9GRVNETJFQGZ1"
    • When Gửi request "GET" đến "/M26/clans/${9GRVNETJFQGZ1}/logs"
    • Then Response có body thỏa mãn giá trị như sau
      [
      {
        "activity": "CLAN_CREATE",
        "actor": {
        "username": "userclan"
      },
      "target": {
        "metadata": {
          "code": "${9GRVNETJFQGZ1}",
          "description": <description>,
          "name": "Phường Natra",
          "owner": "userclan"
          }
        }
      }
      ]

    Examples:

    description
    null
    "Hôm nay trời nắng, mình lập hội chơi chơi"
  • Tags: @AUTOMATED, @TNK-8037

    Không thể tạo phường nếu tôi đang là chủ một phường khác

    • Given Tài khoản "userclan" đã tạo phường với thông tin
      codenamedescription
      001AutoTesttest thui
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "user_has_clan",
        "detail": "User has an other clan"
      }
  • Tags: @AUTOMATED, @TNK-8037

    Không thể tạo phường nếu tôi đang là thành viên trong một phường khác

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescription
      001AutoTesttest thui
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra"
      }
    • Then Tôi nhận được response có HTTP Status 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "user_has_clan",
        "detail": "User has an other clan"
      }
  • Tags: @AUTOMATED, @TNK-11536

    Có thể lựa chọn quyền tham gia phường (cần duyệt/không cần duyệt) khi tạo phường. Nếu không gửi lên thông tin

    quyền tham gia phường (requestRequired) hoặc gửi null khi tạo thì phường tạo ra sẽ mặc định là phường cần duyệt

    • Given Khách hàng "userclan" chưa là thành viên của phường nào
    • And Request có header là
      X-Tenantm26
    • And Có token của tài khoản "userclan"
    • When Gửi request "POST" đến "/M26/clans" với body
      {
        "name": "Phường Natra",
        <requestRequiredBody>
        "description": "Test api tạo phường"
      }
    • Then Tôi nhận được response có HTTP Status 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "name": "Phường Natra",
        "description": "Test api tạo phường",
        "owner": "userclan"
      }
    • And Phường vừa tạo có mã "9GRVNETJFQGZ1"
    • When Gửi request "GET" đến "/M26/clans/${9GRVNETJFQGZ1}"
    • And Response có body thỏa mãn giá trị như sau
      {
        "code": "${9GRVNETJFQGZ1}",
        "name": "Phường Natra",
        "requestRequired": <requestRequired>
      }

    Examples:

    requestRequiredBody requestRequired
    "requestRequired": true, true
    "requestRequired": false, false
    true
    "requestRequired": null, true