«

PATCH - /api/M26/clans/{clanCode}/leave - Rời khỏi phường

  • Header: X-Tenant
  • Param: clanCode
  • Request body: { "newOwner": "string" // chủ phường rời phường và chỉ định người khác làm chủ phường }
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 400 khi gửi request rời phường mà không gửi lên header X-Tenant

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Có token của tài khoản "userclan"
    • When Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 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-9581

    Trả status 404 khi gửi request rời phường với header X-Tenant không hợp lệ

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Có token của tài khoản "userclan"
    • When Request có header là
      X-Tenant<x-tenant>
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
         "title": "member_not_found"
      }

    Examples:

    x-tenant
    null
    lalala
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 401 nếu rời phường mà không gửi token

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 401 nếu rời phường mà gửi token không hợp lệ

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Token đã hết hạn
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 401
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 404 khi gửi request rời phường với clanCode không tồn tại

    • Given Có token của tài khoản "userclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/001/leave" với body
      {}
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
         "title": "member_not_found"
      }
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 404 khi gửi request rời phường mà mình không phải là thành viên

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Tài khoản "ownerclan01" đã tạo phường với thông tin
      codenamedescription
      002AutoTesttest thui
    • And Có token của tài khoản "userclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${002}/leave" với body
      {}
    • Then Trả về status code 404
    • And Response có body thỏa mãn giá trị như sau
      {
         "title": "member_not_found"
      }
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 400 nếu chủ phường rời phường khi chưa chỉ định thành viên khác làm chủ phường. Body không truyền lên newOwner

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Có token của tài khoản "ownerclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "user_invalid"
      }
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 400 khi chủ phường rời phường nhưng gửi lên body với newOwner không phải là thành viên của phường

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Khách hàng "userclan02" chưa là thành viên của phường nào
    • And Có token của tài khoản "ownerclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {
        "newOwner": "userclan02"
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "user_invalid"
      }
  • Tags: @AUTOMATED, @TNK-9581

    Trả status 400 khi chủ phường rời phường nhưng gửi lên body với newOwner null

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Khách hàng "userclan02" chưa là thành viên của phường nào
    • And Có token của tài khoản "ownerclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {
        "newOwner": null
      }
    • Then Trả về status code 400
    • And Response có body thỏa mãn giá trị như sau
      {
        "title": "user_invalid"
      }
  • Tags: @AUTOMATED, @TNK-9581

    Thành viên không phải là chủ phường có thể rời phường. Body không cần gửi lên thông tin newOwner.

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Có token của tài khoản "userclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "clanCode": "${001}",
        "username": "userclan",
        "role": 2
      }
    • And Tài khoản "userclan" không còn là thành viên của phường "001"
  • Tags: @AUTOMATED, @TNK-9581

    Trong trường hợp phường chỉ có 1 thành viên duy nhất chính là chủ phường, chủ phường có thể rời phường.

    Sau khi rời, phường sẽ bị xóa khỏi hệ thống.

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescription
      001AutoTesttest thui
    • And Phường "001" chỉ có 1 thành viên duy nhất
    • And Có token của tài khoản "ownerclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {}
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "clanCode": "${001}",
        "username": "ownerclan",
        "role": 1,
        "status": false
      }
    • And Không tồn tại phường "001" trên hệ thống
  • Tags: @AUTOMATED, @TNK-9581

    Khi phường đã có nhiều hơn 1 thành viên, chủ phường rời phường thành công khi đã chỉ định người khác trong phường lên làm chủ phường.

    • Given Tài khoản "ownerclan" đã tạo phường với thông tin
      codenamedescriptionrequestRequired
      001AutoTesttest thuifalse
    • And Tài khoản "userclan" là thành viên của phường "001"
    • And Có token của tài khoản "ownerclan"
    • When Request có header là
      X-Tenantm26
    • And Gửi request "PATCH" đến "/M26/clans/${001}/leave" với body
      {
        "newOwner": "userclan"
      }
    • Then Trả về status code 200
    • And Response có body thỏa mãn giá trị như sau
      {
        "clanCode": "${001}",
        "username": "ownerclan",
        "role": 1,
        "status": false
      }
    • And Tài khoản "ownerclan" không còn là thành viên của phường "001"
    • And Tài khoản "userclan" là chủ phường "001"