feat(opsserver,web): replace the Angular UI and REST management layer with a TypedRequest-based ops server and bundled web frontend
This commit is contained in:
@@ -4,19 +4,19 @@
|
||||
*/
|
||||
|
||||
import { assertEquals, assertExists } from 'jsr:@std/assert';
|
||||
import { describe, it, beforeAll, afterAll, beforeEach } from 'jsr:@std/testing/bdd';
|
||||
import { afterAll, beforeAll, beforeEach, describe, it } from 'jsr:@std/testing/bdd';
|
||||
import {
|
||||
setupTestDb,
|
||||
teardownTestDb,
|
||||
assertStatus,
|
||||
cleanupTestDb,
|
||||
createAuthHeader,
|
||||
createTestUser,
|
||||
del,
|
||||
get,
|
||||
loginUser,
|
||||
post,
|
||||
get,
|
||||
put,
|
||||
del,
|
||||
assertStatus,
|
||||
createAuthHeader,
|
||||
setupTestDb,
|
||||
teardownTestDb,
|
||||
} from '../helpers/index.ts';
|
||||
|
||||
describe('Organization API Integration', () => {
|
||||
@@ -48,7 +48,7 @@ describe('Organization API Integration', () => {
|
||||
displayName: 'My Organization',
|
||||
description: 'A test organization',
|
||||
},
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 201);
|
||||
@@ -64,7 +64,7 @@ describe('Organization API Integration', () => {
|
||||
name: 'push.rocks',
|
||||
displayName: 'Push Rocks',
|
||||
},
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 201);
|
||||
@@ -76,13 +76,13 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'duplicate', displayName: 'First' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'duplicate', displayName: 'Second' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 409);
|
||||
@@ -92,7 +92,7 @@ describe('Organization API Integration', () => {
|
||||
const response = await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: '.invalid', displayName: 'Invalid' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 400);
|
||||
@@ -105,12 +105,12 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'org1', displayName: 'Org 1' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'org2', displayName: 'Org 2' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await get('/api/v1/organizations', createAuthHeader(accessToken));
|
||||
@@ -126,7 +126,7 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'get-me', displayName: 'Get Me' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await get('/api/v1/organizations/get-me', createAuthHeader(accessToken));
|
||||
@@ -139,7 +139,7 @@ describe('Organization API Integration', () => {
|
||||
it('should return 404 for non-existent org', async () => {
|
||||
const response = await get(
|
||||
'/api/v1/organizations/non-existent',
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 404);
|
||||
@@ -151,13 +151,13 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'update-me', displayName: 'Original' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await put(
|
||||
'/api/v1/organizations/update-me',
|
||||
{ displayName: 'Updated', description: 'New description' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 200);
|
||||
@@ -172,7 +172,7 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'delete-me', displayName: 'Delete Me' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await del('/api/v1/organizations/delete-me', createAuthHeader(accessToken));
|
||||
@@ -182,7 +182,7 @@ describe('Organization API Integration', () => {
|
||||
// Verify deleted
|
||||
const getResponse = await get(
|
||||
'/api/v1/organizations/delete-me',
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
assertStatus(getResponse, 404);
|
||||
});
|
||||
@@ -193,12 +193,12 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'members-org', displayName: 'Members Org' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await get(
|
||||
'/api/v1/organizations/members-org/members',
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 200);
|
||||
@@ -213,13 +213,13 @@ describe('Organization API Integration', () => {
|
||||
await post(
|
||||
'/api/v1/organizations',
|
||||
{ name: 'add-member-org', displayName: 'Add Member Org' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
const response = await post(
|
||||
'/api/v1/organizations/add-member-org/members',
|
||||
{ userId: newUser.id, role: 'member' },
|
||||
createAuthHeader(accessToken)
|
||||
createAuthHeader(accessToken),
|
||||
);
|
||||
|
||||
assertStatus(response, 201);
|
||||
|
||||
Reference in New Issue
Block a user