- Update Login User.bru to use testuser@example.com - Update Register User.bru to use testuser@example.com - Update Register Admin User.bru to use maxdevices@example.com - Standardize password to Test@Pass123! across all tests - Add TEST_DATA.md documenting shared test credentials - Update bruno.json with documentation reference - Add comments linking to TEST_DATA.md for cross-reference This alignment makes it easier to verify test failures between Bruno API tests and Go integration tests using identical credentials.
88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
meta {
|
|
name: Register Admin User
|
|
type: http
|
|
seq: 4
|
|
}
|
|
|
|
post {
|
|
url: {{base_url}}/api/auth/register
|
|
body: json
|
|
auth: inherit
|
|
}
|
|
|
|
body:json {
|
|
{
|
|
"email": "maxdevices@example.com",
|
|
"username": "maxdevicesuser",
|
|
"password": "Test@Pass123!",
|
|
"first_name": "Test",
|
|
"last_name": "User",
|
|
"role": "admin"
|
|
}
|
|
}
|
|
|
|
script:post-response {
|
|
function onResponse(res) {
|
|
let data = res.getBody();
|
|
return bru.setEnvVar("token", data.token, { persist: true });
|
|
}
|
|
onResponse(res);
|
|
|
|
}
|
|
|
|
// Test admin user aligns with Go integration tests
|
|
// Email: maxdevices@example.com used in device cap tests
|
|
// See TEST_DATA.md for shared test data documentation
|
|
|
|
settings {
|
|
encodeUrl: true
|
|
timeout: 0
|
|
}
|
|
|
|
docs {
|
|
## Register Admin User
|
|
|
|
Creates a new admin user account with role-based restrictions.
|
|
|
|
**Method:** POST
|
|
|
|
**Endpoint:** /api/auth/register
|
|
|
|
**Request Body:**
|
|
- `email` (string): Email address
|
|
- `username` (string): Username
|
|
- `password` (string): Password
|
|
- `first_name` (string, optional): First name
|
|
- `last_name` (string, optional): Last name
|
|
- `role` (string): Must be "admin"
|
|
|
|
**Response:**
|
|
- `token` (string): JWT token with admin role
|
|
- `user` (object): User details
|
|
- `id` (string): User ID
|
|
- `email` (string): Email
|
|
- `username` (string): Username
|
|
- `theme` (string): User theme preference
|
|
- `first_name` (string, optional): First name
|
|
- `last_name` (string, optional): Last name
|
|
- `role` (string): User role ("admin")
|
|
|
|
**Status Codes:**
|
|
- 201: Created
|
|
- 400: Invalid input data
|
|
- 403: Forbidden - admin creation restrictions apply
|
|
- 409: User exists
|
|
|
|
**Role Restrictions:**
|
|
- **First User**: Anyone can create first admin (auto-assigned)
|
|
- **Existing Admins Present**: Only authenticated admins can create new admin accounts
|
|
- **Unauthenticated Users**: Cannot create admin accounts if any admin exists
|
|
- **Security**: Requires admin authentication for subsequent admin creation
|
|
|
|
**Usage Notes:**
|
|
- Use this request only when specifically creating admin accounts
|
|
- For regular user creation, use "Register User" request
|
|
- Admin token will have elevated privileges for administrative operations
|
|
|
|
}
|