TC_ADMIN_002: Tenant Configuration Verification
Test Case Information
| Field | Value |
|---|---|
| Test ID | TC_ADMIN_002 |
| Module | Platform Administration |
| Priority | P0 - Blocker |
| Type | Configuration Test |
| Prerequisites | TC_ADMIN_001 passed, Seed script run |
Objective
Verify the rcme tenant exists with all required configuration.
Test Tenant Details
| Field | Expected Value |
|---|---|
| Slug | rcme |
| Name | Rotary Club of Manila Expats |
| Description | RCME tenant - aligned with playwright-e2e fixtures |
Test Steps
Step 1: Verify Tenant Exists
| Action | Query tenant via API or database |
|---|---|
| API | GET /api/tenants/rcme (if endpoint exists) |
| DB Query | SELECT * FROM "Tenant" WHERE slug = 'rcme' |
| Expected | Tenant record found |
Step 2: Verify Feature Flags
| Action | Check FeatureFlags for tenant |
|---|---|
| DB Query | SELECT * FROM "FeatureFlags" WHERE "tenantId" = ' |
Expected Flags:
| Flag | Value |
|---|---|
| payments | true |
| events | true |
| communications | true |
| reporting | true |
Step 3: Verify Organization Profile
| Action | Check OrgProfile for tenant |
|---|---|
| DB Query | SELECT * FROM "OrgProfile" WHERE "tenantId" = ' |
Expected Values:
| Field | Value |
|---|---|
| displayName | RCME |
| legalName | Rotary Club of Manila Expats Inc. |
| type | club |
| currency | PHP |
| timezone | Asia/Manila |
| locale | en-PH |
Step 4: Verify Dues Settings
| Action | Check TenantDuesSettings for tenant |
|---|---|
| DB Query | SELECT * FROM "TenantDuesSettings" WHERE "tenantId" = ' |
Expected Values:
| Field | Value |
|---|---|
| annualAmountCents | 1500000 (PHP 15,000) |
Step 5: Verify Approval Workflow
| Action | Check TenantApprovalWorkflow for tenant |
|---|---|
| DB Query | SELECT * FROM "TenantApprovalWorkflow" WHERE "tenantId" = ' |
Expected Values:
| Field | Value |
|---|---|
| requireApproval | true |
| approverRoles | ["ADMIN", "MEMBERSHIP_MANAGER"] |
Step 6: Verify Membership Types
| Action | Check MembershipType records for tenant |
|---|---|
| DB Query | SELECT * FROM "MembershipType" WHERE "tenantId" = ' |
Expected Types:
| Name | Amount (cents) | Period |
|---|---|---|
| Regular Member | 1500000 | ANNUAL |
| Associate Member | 1000000 | ANNUAL |
Combined Verification Query
SELECT
t.slug,
t.name,
ff.payments,
ff.events,
ff.communications,
ff.reporting,
op."displayName",
op.currency,
op.timezone,
ds."annualAmountCents",
aw."requireApproval",
aw."approverRoles"
FROM "Tenant" t
LEFT JOIN "FeatureFlags" ff ON t.id = ff."tenantId"
LEFT JOIN "OrgProfile" op ON t.id = op."tenantId"
LEFT JOIN "TenantDuesSettings" ds ON t.id = ds."tenantId"
LEFT JOIN "TenantApprovalWorkflow" aw ON t.id = aw."tenantId"
WHERE t.slug = 'rcme';
Pass/Fail Criteria
| Criteria | Required |
|---|---|
| Tenant exists | Yes |
| All feature flags enabled | Yes |
| OrgProfile configured | Yes |
| Dues settings configured | Yes |
| Approval workflow configured | Yes |
| Membership types exist | Yes |
Troubleshooting
Tenant Not Found
# Run seed script
docker exec membervu-backend npm run seed:rcme
Missing Configuration
# Reset and reseed
docker exec membervu-backend npm run seed:rcme -- --reset
Result Template
| Configuration | Status | Notes |
|---|---|---|
| Tenant exists | [ ] Pass / [ ] Fail | |
| Feature flags | [ ] Pass / [ ] Fail | |
| Org profile | [ ] Pass / [ ] Fail | |
| Dues settings | [ ] Pass / [ ] Fail | |
| Approval workflow | [ ] Pass / [ ] Fail | |
| Membership types | [ ] Pass / [ ] Fail | |
| Overall | [ ] Pass / [ ] Fail |
Tester: _________________
Date: _________________