Merge pull request #2445 from automatisch/internal-api-namespace

refactor: Use internal namespace for the existing API
This commit is contained in:
Ömer Faruk Aydın
2025-04-23 11:55:03 +02:00
committed by GitHub
354 changed files with 2284 additions and 2204 deletions

View File

@@ -1,6 +0,0 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import permissionCatalog from '../../../../../helpers/permission-catalog.ee.js';
export default async (request, response) => {
renderObject(response, permissionCatalog);
};

View File

@@ -1,50 +0,0 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../test/factories/user.js';
import getOAuthClientMock from '../../../../../test/mocks/rest/api/v1/apps/get-oauth-client.js';
import { createOAuthClient } from '../../../../../test/factories/oauth-client.js';
import * as license from '../../../../helpers/license.ee.js';
describe('GET /api/v1/apps/:appKey/oauth-clients/:oauthClientId', () => {
let currentUser, currentOAuthClient, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
currentUser = await createUser();
currentOAuthClient = await createOAuthClient({
appKey: 'deepl',
});
token = await createAuthTokenByUserId(currentUser.id);
});
it('should return specified oauth client', async () => {
const response = await request(app)
.get(`/api/v1/apps/deepl/oauth-clients/${currentOAuthClient.id}`)
.set('Authorization', token)
.expect(200);
const expectedPayload = getOAuthClientMock(currentOAuthClient);
expect(response.body).toStrictEqual(expectedPayload);
});
it('should return not found response for not existing oauth client ID', async () => {
const notExistingOAuthClientUUID = Crypto.randomUUID();
await request(app)
.get(`/api/v1/apps/deepl/oauth-clients/${notExistingOAuthClientUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.get('/api/v1/apps/deepl/oauth-clients/invalidOAuthClientUUID')
.set('Authorization', token)
.expect(400);
});
});

View File

@@ -1,10 +0,0 @@
import { renderObject } from '../../../../helpers/renderer.js';
import OAuthClient from '../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClients = await OAuthClient.query()
.where({ app_key: request.params.appKey, active: true })
.orderBy('created_at', 'desc');
renderObject(response, oauthClients);
};

View File

@@ -1,42 +0,0 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../test/factories/user.js';
import getOAuthClientsMock from '../../../../../test/mocks/rest/api/v1/apps/get-oauth-clients.js';
import { createOAuthClient } from '../../../../../test/factories/oauth-client.js';
import * as license from '../../../../helpers/license.ee.js';
describe('GET /api/v1/apps/:appKey/oauth-clients', () => {
let currentUser, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
currentUser = await createUser();
token = await createAuthTokenByUserId(currentUser.id);
});
it('should return specified oauth client info', async () => {
const oauthClientOne = await createOAuthClient({
appKey: 'deepl',
});
const oauthClientTwo = await createOAuthClient({
appKey: 'deepl',
});
const response = await request(app)
.get('/api/v1/apps/deepl/oauth-clients')
.set('Authorization', token)
.expect(200);
const expectedPayload = getOAuthClientsMock([
oauthClientTwo,
oauthClientOne,
]);
expect(response.body).toStrictEqual(expectedPayload);
});
});

View File

@@ -1,9 +0,0 @@
import { describe, it } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
describe('GET /api/v1/automatisch/notifications', () => {
it('should return Automatisch notifications', async () => {
await request(app).get('/api/v1/automatisch/notifications').expect(200);
});
});

View File

@@ -1,6 +0,0 @@
import appConfig from '../../../../config/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
export default async (request, response) => {
renderObject(response, { version: appConfig.version });
};

View File

@@ -1,8 +0,0 @@
import { renderObject } from '../../../../helpers/renderer.js';
import Billing from '../../../../helpers/billing/index.ee.js';
export default async (request, response) => {
const paddleInfo = Billing.paddleInfo;
renderObject(response, paddleInfo);
};

View File

@@ -1,5 +1,5 @@
import User from '../../../../models/user.js';
import { renderObject, renderError } from '../../../../helpers/renderer.js';
import User from '../../../../../models/user.js';
import { renderObject, renderError } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const { email, password } = request.body;

View File

@@ -1,9 +1,9 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import { createUser } from '../../../../../test/factories/user';
import app from '../../../../../app.js';
import { createUser } from '../../../../../../test/factories/user.js';
describe('POST /api/v1/access-tokens', () => {
describe('POST /internal/api/v1/access-tokens', () => {
beforeEach(async () => {
await createUser({
email: 'user@automatisch.io',
@@ -13,7 +13,7 @@ describe('POST /api/v1/access-tokens', () => {
it('should return the token data with correct credentials', async () => {
const response = await request(app)
.post('/api/v1/access-tokens')
.post('/internal/api/v1/access-tokens')
.send({
email: 'user@automatisch.io',
password: 'password',
@@ -25,7 +25,7 @@ describe('POST /api/v1/access-tokens', () => {
it('should return error with incorrect credentials', async () => {
const response = await request(app)
.post('/api/v1/access-tokens')
.post('/internal/api/v1/access-tokens')
.send({
email: 'incorrect@email.com',
password: 'incorrectpassword',

View File

@@ -1,11 +1,11 @@
import { expect, describe, it, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user.js';
import AccessToken from '../../../../models/access-token.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import AccessToken from '../../../../../models/access-token.js';
describe('DELETE /api/v1/access-tokens/:token', () => {
describe('DELETE /internal/api/v1/access-tokens/:token', () => {
let token;
beforeEach(async () => {
@@ -18,7 +18,7 @@ describe('DELETE /api/v1/access-tokens/:token', () => {
it('should respond with HTTP 204 with correct token', async () => {
await request(app)
.delete(`/api/v1/access-tokens/${token}`)
.delete(`/internal/api/v1/access-tokens/${token}`)
.set('Authorization', token)
.expect(204);
@@ -30,7 +30,7 @@ describe('DELETE /api/v1/access-tokens/:token', () => {
it('should respond with HTTP 401 with incorrect credentials', async () => {
await request(app)
.delete(`/api/v1/access-tokens/${token}`)
.delete(`/internal/api/v1/access-tokens/${token}`)
.set('Authorization', 'wrong-token')
.expect(401);
@@ -42,7 +42,7 @@ describe('DELETE /api/v1/access-tokens/:token', () => {
it('should respond with HTTP 404 with correct credentials, but non-valid token', async () => {
await request(app)
.delete('/api/v1/access-tokens/wrong-token')
.delete('/internal/api/v1/access-tokens/wrong-token')
.set('Authorization', token)
.expect(404);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import ApiToken from '../../../../../models/api-token.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import ApiToken from '../../../../../../models/api-token.ee.js';
export default async (request, response) => {
const apiToken = await ApiToken.query().insertAndFetch({});

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import ApiToken from '../../../../../models/api-token.ee.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import createApiTokenMock from '../../../../../../test/mocks/rest/api/v1/admin/api-tokens/create-api-token.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import ApiToken from '../../../../../../models/api-token.ee.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import createApiTokenMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/api-tokens/create-api-token.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/api-tokens', () => {
describe('POST /internal/api/v1/admin/api-tokens', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -22,7 +22,7 @@ describe('POST /api/v1/admin/api-tokens', () => {
it('should return the created api token', async () => {
const response = await request(app)
.post('/api/v1/admin/api-tokens')
.post('/internal/api/v1/admin/api-tokens')
.set('Authorization', token)
.expect(201);

View File

@@ -1,4 +1,4 @@
import ApiToken from '../../../../../models/api-token.ee.js';
import ApiToken from '../../../../../../models/api-token.ee.js';
export default async (request, response) => {
const apiToken = await ApiToken.query()

View File

@@ -1,14 +1,14 @@
import Crypto from 'node:crypto';
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createApiToken } from '../../../../../../test/factories/api-token.js';
import { createUser } from '../../../../../../test/factories/user.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createApiToken } from '../../../../../../../test/factories/api-token.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('DELETE /api/v1/admin/api-tokens/:id', () => {
describe('DELETE /internal/api/v1/admin/api-tokens/:id', () => {
let adminRole, currentUser, token;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('DELETE /api/v1/admin/api-tokens/:id', () => {
const apiToken = await createApiToken();
await request(app)
.delete(`/api/v1/admin/api-tokens/${apiToken.id}`)
.delete(`/internal/api/v1/admin/api-tokens/${apiToken.id}`)
.set('Authorization', token)
.expect(204);
@@ -38,7 +38,7 @@ describe('DELETE /api/v1/admin/api-tokens/:id', () => {
const notExistingApiTokenId = Crypto.randomUUID();
await request(app)
.delete(`/api/v1/admin/api-tokens/${notExistingApiTokenId}`)
.delete(`/internal/api/v1/admin/api-tokens/${notExistingApiTokenId}`)
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import ApiToken from '../../../../../models/api-token.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import ApiToken from '../../../../../../models/api-token.ee.js';
export default async (request, response) => {
const apiTokens = await ApiToken.query().orderBy('created_at', 'desc');

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import getAdminApiTokensMock from '../../../../../../test/mocks/rest/api/v1/admin/api-tokens/get-api-tokens.js';
import { createApiToken } from '../../../../../../test/factories/api-token.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import getAdminApiTokensMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/api-tokens/get-api-tokens.js';
import { createApiToken } from '../../../../../../../test/factories/api-token.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/api-tokens', () => {
describe('GET /internal/api/v1/admin/api-tokens', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('GET /api/v1/admin/api-tokens', () => {
const apiTokenTwo = await createApiToken();
const response = await request(app)
.get('/api/v1/admin/api-tokens')
.get('/internal/api/v1/admin/api-tokens')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import AppConfig from '../../../../../models/app-config.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import AppConfig from '../../../../../../models/app-config.js';
export default async (request, response) => {
const createdAppConfig = await AppConfig.query().insertAndFetch(

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import createAppConfigMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/create-config.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import createAppConfigMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/create-config.js';
import { createAppConfig } from '../../../../../../../test/factories/app-config.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/apps/:appKey/config', () => {
describe('POST /internal/api/v1/admin/apps/:appKey/config', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -28,7 +28,7 @@ describe('POST /api/v1/admin/apps/:appKey/config', () => {
};
const response = await request(app)
.post('/api/v1/admin/apps/gitlab/config')
.post('/internal/api/v1/admin/apps/gitlab/config')
.set('Authorization', token)
.send(appConfig)
.expect(201);
@@ -51,7 +51,7 @@ describe('POST /api/v1/admin/apps/:appKey/config', () => {
await createAppConfig(appConfig);
const response = await request(app)
.post('/api/v1/admin/apps/gitlab/config')
.post('/internal/api/v1/admin/apps/gitlab/config')
.set('Authorization', token)
.send({
disabled: false,

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import AppConfig from '../../../../../models/app-config.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import AppConfig from '../../../../../../models/app-config.js';
export default async (request, response) => {
const appConfig = await AppConfig.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import createOAuthClientMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/create-oauth-client.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import createOAuthClientMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/create-oauth-client.js';
import { createAppConfig } from '../../../../../../../test/factories/app-config.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/apps/:appKey/oauth-clients', () => {
describe('POST /internal/api/v1/admin/apps/:appKey/oauth-clients', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -39,7 +39,7 @@ describe('POST /api/v1/admin/apps/:appKey/oauth-clients', () => {
};
const response = await request(app)
.post('/api/v1/admin/apps/gitlab/oauth-clients')
.post('/internal/api/v1/admin/apps/gitlab/oauth-clients')
.set('Authorization', token)
.send(oauthClient)
.expect(201);
@@ -66,7 +66,7 @@ describe('POST /api/v1/admin/apps/:appKey/oauth-clients', () => {
};
const response = await request(app)
.post('/api/v1/admin/apps/deepl/oauth-clients')
.post('/internal/api/v1/admin/apps/deepl/oauth-clients')
.set('Authorization', token)
.send(oauthClient)
.expect(422);
@@ -90,7 +90,7 @@ describe('POST /api/v1/admin/apps/:appKey/oauth-clients', () => {
};
await request(app)
.post('/api/v1/admin/apps/gitlab/oauth-clients')
.post('/internal/api/v1/admin/apps/gitlab/oauth-clients')
.set('Authorization', token)
.send(oauthClient)
.expect(404);
@@ -106,7 +106,7 @@ describe('POST /api/v1/admin/apps/:appKey/oauth-clients', () => {
};
const response = await request(app)
.post('/api/v1/admin/apps/gitlab/oauth-clients')
.post('/internal/api/v1/admin/apps/gitlab/oauth-clients')
.set('Authorization', token)
.send(oauthClient)
.expect(422);

View File

@@ -1,10 +1,10 @@
import { renderObject } from '../../../../helpers/renderer.js';
import OAuthClient from '../../../../models/oauth-client.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import OAuthClient from '../../../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClient = await OAuthClient.query()
.findById(request.params.oauthClientId)
.where({ app_key: request.params.appKey, active: true })
.where({ app_key: request.params.appKey })
.throwIfNotFound();
renderObject(response, oauthClient);

View File

@@ -0,0 +1,59 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import getOAuthClientMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/get-oauth-client.js';
import { createOAuthClient } from '../../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /internal/api/v1/admin/apps/:appKey/oauth-clients/:oauthClientId', () => {
let currentUser, adminRole, currentOAuthClient, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
adminRole = await createRole({ name: 'Admin' });
currentUser = await createUser({ roleId: adminRole.id });
currentOAuthClient = await createOAuthClient({
appKey: 'deepl',
});
token = await createAuthTokenByUserId(currentUser.id);
});
it('should return specified oauth client', async () => {
const response = await request(app)
.get(
`/internal/api/v1/admin/apps/deepl/oauth-clients/${currentOAuthClient.id}`
)
.set('Authorization', token)
.expect(200);
const expectedPayload = getOAuthClientMock(currentOAuthClient);
expect(response.body).toStrictEqual(expectedPayload);
});
it('should return not found response for not existing oauth client ID', async () => {
const notExistingOAuthClientUUID = Crypto.randomUUID();
await request(app)
.get(
`/internal/api/v1/admin/apps/deepl/oauth-clients/${notExistingOAuthClientUUID}`
)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.get(
'/internal/api/v1/admin/apps/deepl/oauth-clients/invalidOAuthClientUUID'
)
.set('Authorization', token)
.expect(400);
});
});

View File

@@ -0,0 +1,10 @@
import { renderObject } from '../../../../../../helpers/renderer.js';
import OAuthClient from '../../../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClients = await OAuthClient.query()
.where({ app_key: request.params.appKey })
.orderBy('created_at', 'desc');
renderObject(response, oauthClients);
};

View File

@@ -0,0 +1,44 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import getAdminOAuthClientsMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/get-oauth-clients.js';
import { createOAuthClient } from '../../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /internal/api/v1/admin/apps/:appKey/oauth-clients', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
adminRole = await createRole({ name: 'Admin' });
currentUser = await createUser({ roleId: adminRole.id });
token = await createAuthTokenByUserId(currentUser.id);
});
it('should return specified oauth client info', async () => {
const oauthClientOne = await createOAuthClient({
appKey: 'deepl',
});
const oauthClientTwo = await createOAuthClient({
appKey: 'deepl',
});
const response = await request(app)
.get('/internal/api/v1/admin/apps/deepl/oauth-clients')
.set('Authorization', token)
.expect(200);
const expectedPayload = getAdminOAuthClientsMock([
oauthClientTwo,
oauthClientOne,
]);
expect(response.body).toStrictEqual(expectedPayload);
});
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import AppConfig from '../../../../../models/app-config.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import AppConfig from '../../../../../../models/app-config.js';
export default async (request, response) => {
const appConfig = await AppConfig.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import createAppConfigMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/create-config.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import createAppConfigMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/create-config.js';
import { createAppConfig } from '../../../../../../../test/factories/app-config.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/apps/:appKey/config', () => {
describe('PATCH /internal/api/v1/admin/apps/:appKey/config', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -36,7 +36,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => {
};
const response = await request(app)
.patch('/api/v1/admin/apps/gitlab/config')
.patch('/internal/api/v1/admin/apps/gitlab/config')
.set('Authorization', token)
.send(newAppConfigValues)
.expect(200);
@@ -56,7 +56,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => {
};
await request(app)
.patch('/api/v1/admin/apps/gitlab/config')
.patch('/internal/api/v1/admin/apps/gitlab/config')
.set('Authorization', token)
.send(appConfig)
.expect(404);
@@ -72,7 +72,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => {
await createAppConfig(appConfig);
const response = await request(app)
.patch('/api/v1/admin/apps/gitlab/config')
.patch('/internal/api/v1/admin/apps/gitlab/config')
.set('Authorization', token)
.send({
disabled: 'invalid value type',

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import OAuthClient from '../../../../../models/oauth-client.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import OAuthClient from '../../../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClient = await OAuthClient.query()

View File

@@ -2,16 +2,16 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import updateOAuthClientMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/update-oauth-client.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import { createOAuthClient } from '../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import updateOAuthClientMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/apps/update-oauth-client.js';
import { createAppConfig } from '../../../../../../../test/factories/app-config.js';
import { createOAuthClient } from '../../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/apps/:appKey/oauth-clients', () => {
describe('PATCH /internal/api/v1/admin/apps/:appKey/oauth-clients', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -46,7 +46,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/oauth-clients', () => {
const response = await request(app)
.patch(
`/api/v1/admin/apps/gitlab/oauth-clients/${existingOAuthClient.id}`
`/internal/api/v1/admin/apps/gitlab/oauth-clients/${existingOAuthClient.id}`
)
.set('Authorization', token)
.send(oauthClient)
@@ -65,7 +65,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/oauth-clients', () => {
await request(app)
.patch(
`/api/v1/admin/apps/gitlab/oauth-clients/${notExistingOAuthClientId}`
`/internal/api/v1/admin/apps/gitlab/oauth-clients/${notExistingOAuthClientId}`
)
.set('Authorization', token)
.expect(404);
@@ -73,7 +73,9 @@ describe('PATCH /api/v1/admin/apps/:appKey/oauth-clients', () => {
it('should return bad request response for invalid UUID', async () => {
await request(app)
.patch('/api/v1/admin/apps/gitlab/oauth-clients/invalidAuthClientUUID')
.patch(
'/internal/api/v1/admin/apps/gitlab/oauth-clients/invalidAuthClientUUID'
)
.set('Authorization', token)
.expect(400);
});
@@ -90,7 +92,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/oauth-clients', () => {
const response = await request(app)
.patch(
`/api/v1/admin/apps/gitlab/oauth-clients/${existingOAuthClient.id}`
`/internal/api/v1/admin/apps/gitlab/oauth-clients/${existingOAuthClient.id}`
)
.set('Authorization', token)
.send(oauthClient)

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Config from '../../../../../models/config.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Config from '../../../../../../models/config.js';
export default async (request, response) => {
const config = await Config.query().updateFirstOrInsert(

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { updateConfig } from '../../../../../../test/factories/config.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { updateConfig } from '../../../../../../../test/factories/config.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/config', () => {
describe('PATCH /internal/api/v1/admin/config', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -66,7 +66,7 @@ describe('PATCH /api/v1/admin/config', () => {
};
const response = await request(app)
.patch('/api/v1/admin/config')
.patch('/internal/api/v1/admin/config')
.set('Authorization', token)
.send(newConfigValues)
.expect(200);
@@ -83,7 +83,7 @@ describe('PATCH /api/v1/admin/config', () => {
};
const response = await request(app)
.patch('/api/v1/admin/config')
.patch('/internal/api/v1/admin/config')
.set('Authorization', token)
.send(newConfigValues)
.expect(200);
@@ -98,7 +98,7 @@ describe('PATCH /api/v1/admin/config', () => {
};
const response = await request(app)
.patch('/api/v1/admin/config')
.patch('/internal/api/v1/admin/config')
.set('Authorization', token)
.send(newConfigValues)
.expect(200);

View File

@@ -0,0 +1,6 @@
import { renderObject } from '../../../../../../helpers/renderer.js';
import permissionCatalog from '../../../../../../helpers/permission-catalog.ee.js';
export default async (request, response) => {
renderObject(response, permissionCatalog);
};

View File

@@ -1,13 +1,13 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getPermissionsCatalogMock from '../../../../../../test/mocks/rest/api/v1/admin/permissions/get-permissions-catalog.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import getPermissionsCatalogMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/permissions/get-permissions-catalog.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/permissions/catalog', () => {
describe('GET /internal/api/v1/admin/permissions/catalog', () => {
let role, currentUser, token;
beforeEach(async () => {
@@ -21,7 +21,7 @@ describe('GET /api/v1/admin/permissions/catalog', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get('/api/v1/admin/permissions/catalog')
.get('/internal/api/v1/admin/permissions/catalog')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Role from '../../../../../models/role.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const roleData = roleParams(request);

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import Role from '../../../../../models/role.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import createRoleMock from '../../../../../../test/mocks/rest/api/v1/admin/roles/create-role.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import Role from '../../../../../../models/role.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import createRoleMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/roles/create-role.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/roles', () => {
describe('POST /internal/api/v1/admin/roles', () => {
let role, currentUser, token;
beforeEach(async () => {
@@ -34,7 +34,7 @@ describe('POST /api/v1/admin/roles', () => {
};
const response = await request(app)
.post('/api/v1/admin/roles')
.post('/internal/api/v1/admin/roles')
.set('Authorization', token)
.send(roleData)
.expect(201);
@@ -68,7 +68,7 @@ describe('POST /api/v1/admin/roles', () => {
};
const response = await request(app)
.post('/api/v1/admin/roles')
.post('/internal/api/v1/admin/roles')
.set('Authorization', token)
.send(roleData)
.expect(422);
@@ -92,7 +92,7 @@ describe('POST /api/v1/admin/roles', () => {
};
const response = await request(app)
.post('/api/v1/admin/roles')
.post('/internal/api/v1/admin/roles')
.set('Authorization', token)
.send(roleData)
.expect(422);

View File

@@ -1,4 +1,4 @@
import Role from '../../../../../models/role.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const role = await Role.query()

View File

@@ -1,15 +1,15 @@
import Crypto from 'node:crypto';
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import { createUser } from '../../../../../../test/factories/user.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createPermission } from '../../../../../../../test/factories/permission.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('DELETE /api/v1/admin/roles/:roleId', () => {
describe('DELETE /internal/api/v1/admin/roles/:roleId', () => {
let adminRole, currentUser, token;
beforeEach(async () => {
@@ -27,7 +27,7 @@ describe('DELETE /api/v1/admin/roles/:roleId', () => {
const permission = await createPermission({ roleId: role.id });
await request(app)
.delete(`/api/v1/admin/roles/${role.id}`)
.delete(`/internal/api/v1/admin/roles/${role.id}`)
.set('Authorization', token)
.expect(204);
@@ -42,14 +42,14 @@ describe('DELETE /api/v1/admin/roles/:roleId', () => {
const notExistingRoleUUID = Crypto.randomUUID();
await request(app)
.delete(`/api/v1/admin/roles/${notExistingRoleUUID}`)
.delete(`/internal/api/v1/admin/roles/${notExistingRoleUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return not authorized response for deleting admin role', async () => {
await request(app)
.delete(`/api/v1/admin/roles/${adminRole.id}`)
.delete(`/internal/api/v1/admin/roles/${adminRole.id}`)
.set('Authorization', token)
.expect(403);
});
@@ -59,7 +59,7 @@ describe('DELETE /api/v1/admin/roles/:roleId', () => {
await createUser({ roleId: role.id });
const response = await request(app)
.delete(`/api/v1/admin/roles/${role.id}`)
.delete(`/internal/api/v1/admin/roles/${role.id}`)
.set('Authorization', token)
.expect(422);
@@ -77,7 +77,7 @@ describe('DELETE /api/v1/admin/roles/:roleId', () => {
const samlAuthProvider = await createSamlAuthProvider();
const response = await request(app)
.delete(`/api/v1/admin/roles/${samlAuthProvider.defaultRoleId}`)
.delete(`/internal/api/v1/admin/roles/${samlAuthProvider.defaultRoleId}`)
.set('Authorization', token)
.expect(422);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Role from '../../../../../models/role.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const role = await Role.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import getRoleMock from '../../../../../../test/mocks/rest/api/v1/admin/roles/get-role.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createPermission } from '../../../../../../../test/factories/permission.js';
import getRoleMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/roles/get-role.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/roles/:roleId', () => {
describe('GET /internal/api/v1/admin/roles/:roleId', () => {
let role, currentUser, token, permissionOne, permissionTwo;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('GET /api/v1/admin/roles/:roleId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get(`/api/v1/admin/roles/${role.id}`)
.get(`/internal/api/v1/admin/roles/${role.id}`)
.set('Authorization', token)
.expect(200);
@@ -43,7 +43,7 @@ describe('GET /api/v1/admin/roles/:roleId', () => {
const notExistingRoleUUID = Crypto.randomUUID();
await request(app)
.get(`/api/v1/admin/roles/${notExistingRoleUUID}`)
.get(`/internal/api/v1/admin/roles/${notExistingRoleUUID}`)
.set('Authorization', token)
.expect(404);
});
@@ -52,7 +52,7 @@ describe('GET /api/v1/admin/roles/:roleId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
await request(app)
.get('/api/v1/admin/roles/invalidRoleUUID')
.get('/internal/api/v1/admin/roles/invalidRoleUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Role from '../../../../../models/role.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const roles = await Role.query().orderBy('name');

View File

@@ -1,13 +1,13 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getRolesMock from '../../../../../../test/mocks/rest/api/v1/admin/roles/get-roles.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import getRolesMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/roles/get-roles.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/roles', () => {
describe('GET /internal/api/v1/admin/roles', () => {
let roleOne, roleTwo, currentUser, token;
beforeEach(async () => {
@@ -22,7 +22,7 @@ describe('GET /api/v1/admin/roles', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get('/api/v1/admin/roles')
.get('/internal/api/v1/admin/roles')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Role from '../../../../../models/role.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const role = await Role.query()

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import { createUser } from '../../../../../../test/factories/user.js';
import updateRoleMock from '../../../../../../test/mocks/rest/api/v1/admin/roles/update-role.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createPermission } from '../../../../../../../test/factories/permission.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import updateRoleMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/roles/update-role.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/roles/:roleId', () => {
describe('PATCH /internal/api/v1/admin/roles/:roleId', () => {
let adminRole, viewerRole, currentUser, token;
beforeEach(async () => {
@@ -46,7 +46,7 @@ describe('PATCH /api/v1/admin/roles/:roleId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/roles/${viewerRole.id}`)
.patch(`/internal/api/v1/admin/roles/${viewerRole.id}`)
.set('Authorization', token)
.send(roleData)
.expect(200);
@@ -90,7 +90,7 @@ describe('PATCH /api/v1/admin/roles/:roleId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/roles/${viewerRole.id}`)
.patch(`/internal/api/v1/admin/roles/${viewerRole.id}`)
.set('Authorization', token)
.send(roleData)
.expect(200);
@@ -123,7 +123,7 @@ describe('PATCH /api/v1/admin/roles/:roleId', () => {
};
await request(app)
.patch(`/api/v1/admin/roles/${adminRole.id}`)
.patch(`/internal/api/v1/admin/roles/${adminRole.id}`)
.set('Authorization', token)
.send(roleData)
.expect(403);
@@ -136,7 +136,7 @@ describe('PATCH /api/v1/admin/roles/:roleId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/roles/${viewerRole.id}`)
.patch(`/internal/api/v1/admin/roles/${viewerRole.id}`)
.set('Authorization', token)
.send(roleData)
.expect(422);
@@ -160,7 +160,7 @@ describe('PATCH /api/v1/admin/roles/:roleId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/roles/${viewerRole.id}`)
.patch(`/internal/api/v1/admin/roles/${viewerRole.id}`)
.set('Authorization', token)
.send(roleData)
.expect(422);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProvider = await SamlAuthProvider.query().insert(

View File

@@ -1,13 +1,13 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import createSamlAuthProviderMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/create-saml-auth-provider.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import createSamlAuthProviderMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/create-saml-auth-provider.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/saml-auth-provider', () => {
describe('POST /internal/api/v1/admin/saml-auth-provider', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -35,7 +35,7 @@ describe('POST /api/v1/admin/saml-auth-provider', () => {
};
const response = await request(app)
.post('/api/v1/admin/saml-auth-providers')
.post('/internal/api/v1/admin/saml-auth-providers')
.set('Authorization', token)
.send(samlAuthProviderPayload)
.expect(201);
@@ -50,7 +50,7 @@ describe('POST /api/v1/admin/saml-auth-provider', () => {
it('should return unprocessable entity response for invalid data', async () => {
const response = await request(app)
.post('/api/v1/admin/saml-auth-providers')
.post('/internal/api/v1/admin/saml-auth-providers')
.set('Authorization', token)
.send({
active: true,

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProvider = await SamlAuthProvider.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import { createRoleMapping } from '../../../../../../test/factories/role-mapping.js';
import getRoleMappingsMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/get-role-mappings.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import { createRoleMapping } from '../../../../../../../test/factories/role-mapping.js';
import getRoleMappingsMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/get-role-mappings.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappings', () => {
describe('GET /internal/api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappings', () => {
let roleMappingOne, roleMappingTwo, samlAuthProvider, currentUser, token;
beforeEach(async () => {
@@ -36,7 +36,7 @@ describe('GET /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mapping
const response = await request(app)
.get(
`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
)
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProvider = await SamlAuthProvider.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import getSamlAuthProviderMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/get-saml-auth-provider.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import getSamlAuthProviderMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/get-saml-auth-provider.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
describe('GET /internal/api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
let samlAuthProvider, currentUser, token;
beforeEach(async () => {
@@ -24,7 +24,7 @@ describe('GET /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get(`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`)
.get(`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`)
.set('Authorization', token)
.expect(200);
@@ -40,7 +40,7 @@ describe('GET /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
await request(app)
.get(
`/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}`
`/internal/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}`
)
.set('Authorization', token)
.expect(404);
@@ -50,7 +50,9 @@ describe('GET /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
await request(app)
.get('/api/v1/admin/saml-auth-providers/invalidSamlAuthProviderUUID')
.get(
'/internal/api/v1/admin/saml-auth-providers/invalidSamlAuthProviderUUID'
)
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProviders = await SamlAuthProvider.query().orderBy(

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import getSamlAuthProvidersMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import getSamlAuthProvidersMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/saml-auth-providers', () => {
describe('GET /internal/api/v1/admin/saml-auth-providers', () => {
let samlAuthProviderOne, samlAuthProviderTwo, currentUser, token;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('GET /api/v1/admin/saml-auth-providers', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get('/api/v1/admin/saml-auth-providers')
.get('/internal/api/v1/admin/saml-auth-providers')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProviderId = request.params.samlAuthProviderId;

View File

@@ -1,16 +1,16 @@
import Crypto from 'node:crypto';
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import { createRoleMapping } from '../../../../../../test/factories/role-mapping.js';
import createRoleMappingsMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/update-role-mappings.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import { createRoleMapping } from '../../../../../../../test/factories/role-mapping.js';
import createRoleMappingsMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/update-role-mappings.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappings', () => {
describe('PATCH /internal/api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappings', () => {
let samlAuthProvider, currentUser, userRole, token;
beforeEach(async () => {
@@ -44,7 +44,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi
const response = await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
)
.set('Authorization', token)
.send(roleMappings)
@@ -71,7 +71,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi
const response = await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
)
.set('Authorization', token)
.send([])
@@ -99,7 +99,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi
await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
)
.set('Authorization', token)
.send(roleMappings)
@@ -116,7 +116,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi
const response = await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings`
)
.set('Authorization', token)
.send(roleMappings)
@@ -143,7 +143,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi
await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}/role-mappings`
`/internal/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}/role-mappings`
)
.set('Authorization', token)
.send(roleMappings)

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import SamlAuthProvider from '../../../../../../models/saml-auth-provider.ee.js';
export default async (request, response) => {
const samlAuthProvider = await SamlAuthProvider.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js';
import createSamlAuthProviderMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/create-saml-auth-provider.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createSamlAuthProvider } from '../../../../../../../test/factories/saml-auth-provider.ee.js';
import createSamlAuthProviderMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/saml-auth-providers/create-saml-auth-provider.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
describe('PATCH /internal/api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -41,7 +41,9 @@ describe('PATCH /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
);
const response = await request(app)
.patch(`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`)
.patch(
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`
)
.set('Authorization', token)
.send({
active: false,
@@ -80,7 +82,9 @@ describe('PATCH /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
);
const response = await request(app)
.patch(`/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`)
.patch(
`/internal/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}`
)
.set('Authorization', token)
.send({
active: 'true',
@@ -104,7 +108,7 @@ describe('PATCH /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
await request(app)
.patch(
`/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}`
`/internal/api/v1/admin/saml-auth-providers/${notExistingSamlAuthProviderUUID}`
)
.set('Authorization', token)
.expect(404);
@@ -112,7 +116,9 @@ describe('PATCH /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => {
it('should return bad request response for invalid UUID', async () => {
await request(app)
.patch('/api/v1/admin/saml-auth-providers/invalidSamlAuthProviderUUID')
.patch(
'/internal/api/v1/admin/saml-auth-providers/invalidSamlAuthProviderUUID'
)
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Template from '../../../../../models/template.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Template from '../../../../../../models/template.ee.js';
export default async (request, response) => {
const template = await Template.create(templateParams(request));

View File

@@ -1,17 +1,17 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import Template from '../../../../../models/template.ee.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createFlow } from '../../../../../../test/factories/flow.js';
import { createStep } from '../../../../../../test/factories/step.js';
import createTemplateMock from '../../../../../../test/mocks/rest/api/v1/admin/templates/create-template.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import Template from '../../../../../../models/template.ee.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createFlow } from '../../../../../../../test/factories/flow.js';
import { createStep } from '../../../../../../../test/factories/step.js';
import createTemplateMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/templates/create-template.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('POST /api/v1/admin/templates', () => {
describe('POST /internal/api/v1/admin/templates', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -58,7 +58,7 @@ describe('POST /api/v1/admin/templates', () => {
};
const response = await request(app)
.post('/api/v1/admin/templates')
.post('/internal/api/v1/admin/templates')
.set('Authorization', token)
.send(templatePayload)
.expect(201);
@@ -76,7 +76,7 @@ describe('POST /api/v1/admin/templates', () => {
const invalidFlowId = Crypto.randomUUID();
await request(app)
.post('/api/v1/admin/templates')
.post('/internal/api/v1/admin/templates')
.set('Authorization', token)
.send({
name: 'Sample Template Name',
@@ -120,7 +120,7 @@ describe('POST /api/v1/admin/templates', () => {
};
const response = await request(app)
.post('/api/v1/admin/templates')
.post('/internal/api/v1/admin/templates')
.set('Authorization', token)
.send(templatePayload)
.expect(422);

View File

@@ -1,4 +1,4 @@
import Template from '../../../../../models/template.ee.js';
import Template from '../../../../../../models/template.ee.js';
export default async (request, response) => {
const template = await Template.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../test/factories/template.js';
import Template from '../../../../../models/template.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../../test/factories/template.js';
import Template from '../../../../../../models/template.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('DELETE /api/v1/admin/templates/:templateId', () => {
describe('DELETE /internal/api/v1/admin/templates/:templateId', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('DELETE /api/v1/admin/templates/:templateId', () => {
const template = await createTemplate();
await request(app)
.delete(`/api/v1/admin/templates/${template.id}`)
.delete(`/internal/api/v1/admin/templates/${template.id}`)
.set('Authorization', token)
.expect(204);
@@ -37,14 +37,14 @@ describe('DELETE /api/v1/admin/templates/:templateId', () => {
const notExistingTemplateUUID = Crypto.randomUUID();
await request(app)
.delete(`/api/v1/admin/templates/${notExistingTemplateUUID}`)
.delete(`/internal/api/v1/admin/templates/${notExistingTemplateUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.delete('/api/v1/admin/templates/invalidTemplateUUID')
.delete('/internal/api/v1/admin/templates/invalidTemplateUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Template from '../../../../../models/template.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Template from '../../../../../../models/template.ee.js';
export default async (request, response) => {
const template = await Template.query()

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../test/factories/template.js';
import getTemplateMock from '../../../../../../test/mocks/rest/api/v1/admin/templates/get-template.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../../test/factories/template.js';
import getTemplateMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/templates/get-template.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/templates/:templateId', () => {
describe('GET /internal/api/v1/admin/templates/:templateId', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -24,7 +24,7 @@ describe('GET /api/v1/admin/templates/:templateId', () => {
const template = await createTemplate();
const response = await request(app)
.get(`/api/v1/admin/templates/${template.id}`)
.get(`/internal/api/v1/admin/templates/${template.id}`)
.set('Authorization', token)
.expect(200);

View File

@@ -1,10 +1,10 @@
import { renderObject } from '../../../../helpers/renderer.js';
import Template from '../../../../models/template.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Template from '../../../../../../models/template.ee.js';
export default async (request, response) => {
const templates = await Template.query().orderBy('created_at', 'asc');
renderObject(response, templates, {
serializer: 'Template',
serializer: 'AdminTemplate',
});
};

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../test/factories/template.js';
import getTemplatesMock from '../../../../../../test/mocks/rest/api/v1/admin/templates/get-templates.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../../test/factories/template.js';
import getTemplatesMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/templates/get-templates.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/templates', () => {
describe('GET /internal/api/v1/admin/templates', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('GET /api/v1/admin/templates', () => {
const templateTwo = await createTemplate();
const response = await request(app)
.get('/api/v1/admin/templates')
.get('/internal/api/v1/admin/templates')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import Template from '../../../../../models/template.ee.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import Template from '../../../../../../models/template.ee.js';
export default async (request, response) => {
const template = await Template.query()

View File

@@ -1,15 +1,15 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../test/factories/template.js';
import updateTemplateMock from '../../../../../../test/mocks/rest/api/v1/admin/templates/update-template.ee.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createTemplate } from '../../../../../../../test/factories/template.js';
import updateTemplateMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/templates/update-template.ee.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('PATCH /api/v1/admin/templates/:templateId', () => {
describe('PATCH /internal/api/v1/admin/templates/:templateId', () => {
let currentUser, token, role;
beforeEach(async () => {
@@ -26,7 +26,7 @@ describe('PATCH /api/v1/admin/templates/:templateId', () => {
const updatedName = 'Updated Template Name';
const response = await request(app)
.patch(`/api/v1/admin/templates/${template.id}`)
.patch(`/internal/api/v1/admin/templates/${template.id}`)
.set('Authorization', token)
.send({ name: updatedName })
.expect(200);
@@ -46,7 +46,7 @@ describe('PATCH /api/v1/admin/templates/:templateId', () => {
const template = await createTemplate();
const response = await request(app)
.patch(`/api/v1/admin/templates/${template.id}`)
.patch(`/internal/api/v1/admin/templates/${template.id}`)
.set('Authorization', token)
.send({ name: '' })
.expect(422);
@@ -63,14 +63,14 @@ describe('PATCH /api/v1/admin/templates/:templateId', () => {
const notExistingTemplateUUID = Crypto.randomUUID();
await request(app)
.patch(`/api/v1/admin/templates/${notExistingTemplateUUID}`)
.patch(`/internal/api/v1/admin/templates/${notExistingTemplateUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.patch('/api/v1/admin/templates/invalidTemplateUUID')
.patch('/internal/api/v1/admin/templates/invalidTemplateUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,6 +1,6 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import User from '../../../../../models/user.js';
import Role from '../../../../../models/role.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import User from '../../../../../../models/user.js';
import Role from '../../../../../../models/role.js';
export default async (request, response) => {
const user = await User.query().insertAndFetch(await userParams(request));

View File

@@ -1,14 +1,14 @@
import { describe, beforeEach, it, expect } from 'vitest';
import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import User from '../../../../../models/user.js';
import Role from '../../../../../models/role.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import createUserMock from '../../../../../../test/mocks/rest/api/v1/admin/users/create-user.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import User from '../../../../../../models/user.js';
import Role from '../../../../../../models/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import createUserMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/users/create-user.js';
describe('POST /api/v1/admin/users', () => {
describe('POST /internal/api/v1/admin/users', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -29,7 +29,7 @@ describe('POST /api/v1/admin/users', () => {
};
const response = await request(app)
.post('/api/v1/admin/users')
.post('/internal/api/v1/admin/users')
.set('Authorization', token)
.send(userData)
.expect(201);
@@ -52,7 +52,7 @@ describe('POST /api/v1/admin/users', () => {
};
const response = await request(app)
.post('/api/v1/admin/users')
.post('/internal/api/v1/admin/users')
.set('Authorization', token)
.send(userData)
.expect(201);
@@ -85,7 +85,7 @@ describe('POST /api/v1/admin/users', () => {
};
const response = await request(app)
.post('/api/v1/admin/users')
.post('/internal/api/v1/admin/users')
.set('Authorization', token)
.send(userData)
.expect(422);
@@ -108,7 +108,7 @@ describe('POST /api/v1/admin/users', () => {
};
const response = await request(app)
.post('/api/v1/admin/users')
.post('/internal/api/v1/admin/users')
.set('Authorization', token)
.send(userData)
.expect(422);

View File

@@ -1,4 +1,4 @@
import User from '../../../../../models/user.js';
import User from '../../../../../../models/user.js';
export default async (request, response) => {
const id = request.params.userId;

View File

@@ -1,12 +1,12 @@
import { describe, it, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../../test/factories/user';
import { createRole } from '../../../../../../test/factories/role';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../../../test/factories/user';
import { createRole } from '../../../../../../../test/factories/role';
describe('DELETE /api/v1/admin/users/:userId', () => {
describe('DELETE /internal/api/v1/admin/users/:userId', () => {
let currentUser, currentUserRole, anotherUser, token;
beforeEach(async () => {
@@ -20,7 +20,7 @@ describe('DELETE /api/v1/admin/users/:userId', () => {
it('should soft delete user and respond with no content', async () => {
await request(app)
.delete(`/api/v1/admin/users/${anotherUser.id}`)
.delete(`/internal/api/v1/admin/users/${anotherUser.id}`)
.set('Authorization', token)
.expect(204);
});
@@ -29,14 +29,14 @@ describe('DELETE /api/v1/admin/users/:userId', () => {
const notExistingUserUUID = Crypto.randomUUID();
await request(app)
.delete(`/api/v1/admin/users/${notExistingUserUUID}`)
.delete(`/internal/api/v1/admin/users/${notExistingUserUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.delete('/api/v1/admin/users/invalidUserUUID')
.delete('/internal/api/v1/admin/users/invalidUserUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import User from '../../../../../models/user.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import User from '../../../../../../models/user.js';
export default async (request, response) => {
const user = await User.query()

View File

@@ -1,14 +1,14 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../../test/factories/user';
import { createRole } from '../../../../../../test/factories/role';
import getUserMock from '../../../../../../test/mocks/rest/api/v1/admin/users/get-user.js';
import * as license from '../../../../../helpers/license.ee.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../../../test/factories/user';
import { createRole } from '../../../../../../../test/factories/role';
import getUserMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/users/get-user.js';
import * as license from '../../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/users/:userId', () => {
describe('GET /internal/api/v1/admin/users/:userId', () => {
let currentUser, currentUserRole, anotherUser, anotherUserRole, token;
beforeEach(async () => {
@@ -25,7 +25,7 @@ describe('GET /api/v1/admin/users/:userId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const response = await request(app)
.get(`/api/v1/admin/users/${anotherUser.id}`)
.get(`/internal/api/v1/admin/users/${anotherUser.id}`)
.set('Authorization', token)
.expect(200);
@@ -39,7 +39,7 @@ describe('GET /api/v1/admin/users/:userId', () => {
const notExistingUserUUID = Crypto.randomUUID();
await request(app)
.get(`/api/v1/admin/users/${notExistingUserUUID}`)
.get(`/internal/api/v1/admin/users/${notExistingUserUUID}`)
.set('Authorization', token)
.expect(404);
});
@@ -48,7 +48,7 @@ describe('GET /api/v1/admin/users/:userId', () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
await request(app)
.get('/api/v1/admin/users/invalidUserUUID')
.get('/internal/api/v1/admin/users/invalidUserUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,6 +1,6 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import User from '../../../../../models/user.js';
import paginateRest from '../../../../../helpers/pagination.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import User from '../../../../../../models/user.js';
import paginateRest from '../../../../../../helpers/pagination.js';
export default async (request, response) => {
const usersQuery = User.query()

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../../app';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id';
import { createRole } from '../../../../../../test/factories/role';
import { createUser } from '../../../../../../test/factories/user';
import getUsersMock from '../../../../../../test/mocks/rest/api/v1/admin/users/get-users.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import getUsersMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/users/get-users.js';
describe('GET /api/v1/admin/users', () => {
describe('GET /internal/api/v1/admin/users', () => {
let currentUser, currentUserRole, anotherUser, anotherUserRole, token;
beforeEach(async () => {
@@ -31,7 +31,7 @@ describe('GET /api/v1/admin/users', () => {
it('should return users data', async () => {
const response = await request(app)
.get('/api/v1/admin/users')
.get('/internal/api/v1/admin/users')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../../helpers/renderer.js';
import User from '../../../../../models/user.js';
import { renderObject } from '../../../../../../helpers/renderer.js';
import User from '../../../../../../models/user.js';
export default async (request, response) => {
const user = await User.query()

View File

@@ -1,13 +1,13 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import updateUserMock from '../../../../../../test/mocks/rest/api/v1/admin/users/update-user.js';
import app from '../../../../../../app.js';
import createAuthTokenByUserId from '../../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../../test/factories/role.js';
import updateUserMock from '../../../../../../../test/mocks/rest/internal/api/v1/admin/users/update-user.js';
describe('PATCH /api/v1/admin/users/:userId', () => {
describe('PATCH /internal/api/v1/admin/users/:userId', () => {
let currentUser, adminRole, token;
beforeEach(async () => {
@@ -28,7 +28,7 @@ describe('PATCH /api/v1/admin/users/:userId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/users/${anotherUser.id}`)
.patch(`/internal/api/v1/admin/users/${anotherUser.id}`)
.set('Authorization', token)
.send(anotherUserUpdatedData)
.expect(200);
@@ -56,7 +56,7 @@ describe('PATCH /api/v1/admin/users/:userId', () => {
};
const response = await request(app)
.patch(`/api/v1/admin/users/${anotherUser.id}`)
.patch(`/internal/api/v1/admin/users/${anotherUser.id}`)
.set('Authorization', token)
.send(anotherUserUpdatedData)
.expect(422);
@@ -74,14 +74,14 @@ describe('PATCH /api/v1/admin/users/:userId', () => {
const notExistingUserUUID = Crypto.randomUUID();
await request(app)
.patch(`/api/v1/admin/users/${notExistingUserUUID}`)
.patch(`/internal/api/v1/admin/users/${notExistingUserUUID}`)
.set('Authorization', token)
.expect(404);
});
it('should return bad request response for invalid UUID', async () => {
await request(app)
.patch('/api/v1/admin/users/invalidUserUUID')
.patch('/internal/api/v1/admin/users/invalidUserUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -1,4 +1,4 @@
import { renderObject } from '../../../../helpers/renderer.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const connection = await request.currentUser

View File

@@ -1,15 +1,15 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createAppConfig } from '../../../../../test/factories/app-config.js';
import { createOAuthClient } from '../../../../../test/factories/oauth-client.js';
import { createUser } from '../../../../../test/factories/user.js';
import { createPermission } from '../../../../../test/factories/permission.js';
import { createRole } from '../../../../../test/factories/role.js';
import createConnection from '../../../../../test/mocks/rest/api/v1/apps/create-connection.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import { createOAuthClient } from '../../../../../../test/factories/oauth-client.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import { createRole } from '../../../../../../test/factories/role.js';
import createConnection from '../../../../../../test/mocks/rest/internal/api/v1/apps/create-connection.js';
describe('POST /api/v1/apps/:appKey/connections', () => {
describe('POST /internal/api/v1/apps/:appKey/connections', () => {
let currentUser, token;
beforeEach(async () => {
@@ -55,7 +55,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(201);
@@ -73,14 +73,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,
@@ -117,7 +117,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(403);
@@ -125,14 +125,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,
@@ -170,7 +170,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(201);
@@ -188,14 +188,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,
@@ -233,7 +233,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(403);
@@ -241,14 +241,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,
@@ -294,7 +294,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(201);
@@ -312,14 +312,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,
@@ -359,7 +359,7 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
};
await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send(connectionData)
.expect(404);
@@ -367,14 +367,14 @@ describe('POST /api/v1/apps/:appKey/connections', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.post('/api/v1/apps/invalid-app-key/connections')
.post('/internal/api/v1/apps/invalid-app-key/connections')
.set('Authorization', token)
.expect(404);
});
it('should return unprocesible entity response for invalid connection data', async () => {
const response = await request(app)
.post('/api/v1/apps/gitlab/connections')
.post('/internal/api/v1/apps/gitlab/connections')
.set('Authorization', token)
.send({
formattedData: 123,

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const substeps = await App.findActionSubsteps(

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getActionSubstepsMock from '../../../../../test/mocks/rest/api/v1/apps/get-action-substeps.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getActionSubstepsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-action-substeps.js';
describe('GET /api/v1/apps/:appKey/actions/:actionKey/substeps', () => {
describe('GET /internal/api/v1/apps/:appKey/actions/:actionKey/substeps', () => {
let currentUser, exampleApp, token;
beforeEach(async () => {
@@ -21,7 +21,7 @@ describe('GET /api/v1/apps/:appKey/actions/:actionKey/substeps', () => {
(action) => action.key === 'createIssue'
);
const endpointUrl = `/api/v1/apps/${exampleApp.key}/actions/${exampleAction.key}/substeps`;
const endpointUrl = `/internal/api/v1/apps/${exampleApp.key}/actions/${exampleAction.key}/substeps`;
const response = await request(app)
.get(endpointUrl)
@@ -34,13 +34,15 @@ describe('GET /api/v1/apps/:appKey/actions/:actionKey/substeps', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.get('/api/v1/apps/invalid-app-key/actions/invalid-actions-key/substeps')
.get(
'/internal/api/v1/apps/invalid-app-key/actions/invalid-actions-key/substeps'
)
.set('Authorization', token)
.expect(404);
});
it('should return empty array for invalid action key', async () => {
const endpointUrl = `/api/v1/apps/${exampleApp.key}/actions/invalid-action-key/substeps`;
const endpointUrl = `/internal/api/v1/apps/${exampleApp.key}/actions/invalid-action-key/substeps`;
const response = await request(app)
.get(endpointUrl)

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const actions = await App.findActionsByKey(request.params.appKey);

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getActionsMock from '../../../../../test/mocks/rest/api/v1/apps/get-actions.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getActionsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-actions.js';
describe('GET /api/v1/apps/:appKey/actions', () => {
describe('GET /internal/api/v1/apps/:appKey/actions', () => {
let currentUser, token;
beforeEach(async () => {
@@ -18,7 +18,7 @@ describe('GET /api/v1/apps/:appKey/actions', () => {
const exampleApp = await App.findOneByKey('github');
const response = await request(app)
.get(`/api/v1/apps/${exampleApp.key}/actions`)
.get(`/internal/api/v1/apps/${exampleApp.key}/actions`)
.set('Authorization', token)
.expect(200);
@@ -28,7 +28,7 @@ describe('GET /api/v1/apps/:appKey/actions', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.get('/api/v1/apps/invalid-app-key/actions')
.get('/internal/api/v1/apps/invalid-app-key/actions')
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const app = await App.findOneByKey(request.params.appKey);

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getAppMock from '../../../../../test/mocks/rest/api/v1/apps/get-app.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getAppMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-app.js';
describe('GET /api/v1/apps/:appKey', () => {
describe('GET /internal/api/v1/apps/:appKey', () => {
let currentUser, token;
beforeEach(async () => {
@@ -18,7 +18,7 @@ describe('GET /api/v1/apps/:appKey', () => {
const exampleApp = await App.findOneByKey('github');
const response = await request(app)
.get(`/api/v1/apps/${exampleApp.key}`)
.get(`/internal/api/v1/apps/${exampleApp.key}`)
.set('Authorization', token)
.expect(200);
@@ -28,7 +28,7 @@ describe('GET /api/v1/apps/:appKey', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.get('/api/v1/apps/invalid-app-key')
.get('/internal/api/v1/apps/invalid-app-key')
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
let apps = await App.findAll(request.query.name);

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getAppsMock from '../../../../../test/mocks/rest/api/v1/apps/get-apps.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getAppsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-apps.js';
describe('GET /api/v1/apps', () => {
describe('GET /internal/api/v1/apps', () => {
let currentUser, apps, token;
beforeEach(async () => {
@@ -17,7 +17,7 @@ describe('GET /api/v1/apps', () => {
it('should return all apps', async () => {
const response = await request(app)
.get('/api/v1/apps')
.get('/internal/api/v1/apps')
.set('Authorization', token)
.expect(200);
@@ -29,7 +29,7 @@ describe('GET /api/v1/apps', () => {
const appsWithNameGit = apps.filter((app) => app.name.includes('Git'));
const response = await request(app)
.get('/api/v1/apps?name=Git')
.get('/internal/api/v1/apps?name=Git')
.set('Authorization', token)
.expect(200);
@@ -41,7 +41,7 @@ describe('GET /api/v1/apps', () => {
const appsWithTriggers = apps.filter((app) => app.triggers?.length > 0);
const response = await request(app)
.get('/api/v1/apps?onlyWithTriggers=true')
.get('/internal/api/v1/apps?onlyWithTriggers=true')
.set('Authorization', token)
.expect(200);
@@ -53,7 +53,7 @@ describe('GET /api/v1/apps', () => {
const appsWithActions = apps.filter((app) => app.actions?.length > 0);
const response = await request(app)
.get('/api/v1/apps?onlyWithActions=true')
.get('/internal/api/v1/apps?onlyWithActions=true')
.set('Authorization', token)
.expect(200);

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const auth = await App.findAuthByKey(request.params.appKey);

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getAuthMock from '../../../../../test/mocks/rest/api/v1/apps/get-auth.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getAuthMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-auth.js';
describe('GET /api/v1/apps/:appKey/auth', () => {
describe('GET /internal/api/v1/apps/:appKey/auth', () => {
let currentUser, token;
beforeEach(async () => {
@@ -18,7 +18,7 @@ describe('GET /api/v1/apps/:appKey/auth', () => {
const exampleApp = await App.findOneByKey('github');
const response = await request(app)
.get(`/api/v1/apps/${exampleApp.key}/auth`)
.get(`/internal/api/v1/apps/${exampleApp.key}/auth`)
.set('Authorization', token)
.expect(200);
@@ -28,7 +28,7 @@ describe('GET /api/v1/apps/:appKey/auth', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.get('/api/v1/apps/invalid-app-key/auth')
.get('/internal/api/v1/apps/invalid-app-key/auth')
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../helpers/renderer.js';
import AppConfig from '../../../../models/app-config.js';
import { renderObject } from '../../../../../helpers/renderer.js';
import AppConfig from '../../../../../models/app-config.js';
export default async (request, response) => {
const appConfig = await AppConfig.query()

View File

@@ -1,13 +1,13 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../test/factories/user.js';
import getAppConfigMock from '../../../../../test/mocks/rest/api/v1/apps/get-config.js';
import { createAppConfig } from '../../../../../test/factories/app-config.js';
import * as license from '../../../../helpers/license.ee.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getAppConfigMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-config.js';
import { createAppConfig } from '../../../../../../test/factories/app-config.js';
import * as license from '../../../../../helpers/license.ee.js';
describe('GET /api/v1/apps/:appKey/config', () => {
describe('GET /internal/api/v1/apps/:appKey/config', () => {
let currentUser, appConfig, token;
beforeEach(async () => {
@@ -26,7 +26,7 @@ describe('GET /api/v1/apps/:appKey/config', () => {
it('should return specified app config info', async () => {
const response = await request(app)
.get(`/api/v1/apps/${appConfig.key}/config`)
.get(`/internal/api/v1/apps/${appConfig.key}/config`)
.set('Authorization', token)
.expect(200);
@@ -36,7 +36,7 @@ describe('GET /api/v1/apps/:appKey/config', () => {
it('should return not found response for not existing app key', async () => {
await request(app)
.get('/api/v1/apps/not-existing-app-key/config')
.get('/internal/api/v1/apps/not-existing-app-key/config')
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,5 +1,5 @@
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
export default async (request, response) => {
const app = await App.findOneByKey(request.params.appKey);

View File

@@ -1,13 +1,13 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../test/factories/user.js';
import { createConnection } from '../../../../../test/factories/connection.js';
import { createPermission } from '../../../../../test/factories/permission.js';
import getConnectionsMock from '../../../../../test/mocks/rest/api/v1/apps/get-connections.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createConnection } from '../../../../../../test/factories/connection.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import getConnectionsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-connections.js';
describe('GET /api/v1/apps/:appKey/connections', () => {
describe('GET /internal/api/v1/apps/:appKey/connections', () => {
let currentUser, currentUserRole, token;
beforeEach(async () => {
@@ -38,7 +38,7 @@ describe('GET /api/v1/apps/:appKey/connections', () => {
});
const response = await request(app)
.get('/api/v1/apps/deepl/connections')
.get('/internal/api/v1/apps/deepl/connections')
.set('Authorization', token)
.expect(200);
@@ -73,7 +73,7 @@ describe('GET /api/v1/apps/:appKey/connections', () => {
});
const response = await request(app)
.get('/api/v1/apps/deepl/connections')
.get('/internal/api/v1/apps/deepl/connections')
.set('Authorization', token)
.expect(200);
@@ -94,7 +94,7 @@ describe('GET /api/v1/apps/:appKey/connections', () => {
});
await request(app)
.get('/api/v1/apps/invalid-connection-id/connections')
.get('/internal/api/v1/apps/invalid-connection-id/connections')
.set('Authorization', token)
.expect(404);
});

View File

@@ -1,7 +1,7 @@
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../models/app.js';
import Flow from '../../../../models/flow.js';
import paginateRest from '../../../../helpers/pagination.js';
import { renderObject } from '../../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import Flow from '../../../../../models/flow.js';
import paginateRest from '../../../../../helpers/pagination.js';
export default async (request, response) => {
const app = await App.findOneByKey(request.params.appKey);

View File

@@ -1,14 +1,14 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../test/factories/user.js';
import { createFlow } from '../../../../../test/factories/flow.js';
import { createStep } from '../../../../../test/factories/step.js';
import { createPermission } from '../../../../../test/factories/permission.js';
import getFlowsMock from '../../../../../test/mocks/rest/api/v1/apps/get-flows.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createFlow } from '../../../../../../test/factories/flow.js';
import { createStep } from '../../../../../../test/factories/step.js';
import { createPermission } from '../../../../../../test/factories/permission.js';
import getFlowsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-flows.js';
describe('GET /api/v1/apps/:appKey/flows', () => {
describe('GET /internal/api/v1/apps/:appKey/flows', () => {
let currentUser, currentUserRole, token;
beforeEach(async () => {
@@ -53,7 +53,7 @@ describe('GET /api/v1/apps/:appKey/flows', () => {
});
const response = await request(app)
.get('/api/v1/apps/webhook/flows')
.get('/internal/api/v1/apps/webhook/flows')
.set('Authorization', token)
.expect(200);
@@ -102,7 +102,7 @@ describe('GET /api/v1/apps/:appKey/flows', () => {
});
const response = await request(app)
.get('/api/v1/apps/webhook/flows')
.get('/internal/api/v1/apps/webhook/flows')
.set('Authorization', token)
.expect(200);
@@ -124,7 +124,7 @@ describe('GET /api/v1/apps/:appKey/flows', () => {
});
await request(app)
.get('/api/v1/apps/invalid-app-key/flows')
.get('/internal/api/v1/apps/invalid-app-key/flows')
.set('Authorization', token)
.expect(404);
});

View File

@@ -4,7 +4,7 @@ import OAuthClient from '../../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClient = await OAuthClient.query()
.findById(request.params.oauthClientId)
.where({ app_key: request.params.appKey })
.where({ app_key: request.params.appKey, active: true })
.throwIfNotFound();
renderObject(response, oauthClient);

View File

@@ -4,20 +4,17 @@ import Crypto from 'crypto';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import getOAuthClientMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/get-oauth-client.js';
import getOAuthClientMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-oauth-client.js';
import { createOAuthClient } from '../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/apps/:appKey/oauth-clients/:oauthClientId', () => {
let currentUser, adminRole, currentOAuthClient, token;
describe('GET /internal/api/v1/apps/:appKey/oauth-clients/:oauthClientId', () => {
let currentUser, currentOAuthClient, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
adminRole = await createRole({ name: 'Admin' });
currentUser = await createUser({ roleId: adminRole.id });
currentUser = await createUser();
currentOAuthClient = await createOAuthClient({
appKey: 'deepl',
});
@@ -27,7 +24,7 @@ describe('GET /api/v1/admin/apps/:appKey/oauth-clients/:oauthClientId', () => {
it('should return specified oauth client', async () => {
const response = await request(app)
.get(`/api/v1/admin/apps/deepl/oauth-clients/${currentOAuthClient.id}`)
.get(`/internal/api/v1/apps/deepl/oauth-clients/${currentOAuthClient.id}`)
.set('Authorization', token)
.expect(200);
@@ -40,7 +37,7 @@ describe('GET /api/v1/admin/apps/:appKey/oauth-clients/:oauthClientId', () => {
await request(app)
.get(
`/api/v1/admin/apps/deepl/oauth-clients/${notExistingOAuthClientUUID}`
`/internal/api/v1/apps/deepl/oauth-clients/${notExistingOAuthClientUUID}`
)
.set('Authorization', token)
.expect(404);
@@ -48,7 +45,7 @@ describe('GET /api/v1/admin/apps/:appKey/oauth-clients/:oauthClientId', () => {
it('should return bad request response for invalid UUID', async () => {
await request(app)
.get('/api/v1/admin/apps/deepl/oauth-clients/invalidOAuthClientUUID')
.get('/internal/api/v1/apps/deepl/oauth-clients/invalidOAuthClientUUID')
.set('Authorization', token)
.expect(400);
});

View File

@@ -3,7 +3,7 @@ import OAuthClient from '../../../../../models/oauth-client.js';
export default async (request, response) => {
const oauthClients = await OAuthClient.query()
.where({ app_key: request.params.appKey })
.where({ app_key: request.params.appKey, active: true })
.orderBy('created_at', 'desc');
renderObject(response, oauthClients);

View File

@@ -3,19 +3,17 @@ import request from 'supertest';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import { createRole } from '../../../../../../test/factories/role.js';
import getAdminOAuthClientsMock from '../../../../../../test/mocks/rest/api/v1/admin/apps/get-oauth-clients.js';
import getOAuthClientsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-oauth-clients.js';
import { createOAuthClient } from '../../../../../../test/factories/oauth-client.js';
import * as license from '../../../../../helpers/license.ee.js';
describe('GET /api/v1/admin/apps/:appKey/oauth-clients', () => {
let currentUser, adminRole, token;
describe('GET /internal/api/v1/apps/:appKey/oauth-clients', () => {
let currentUser, token;
beforeEach(async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
adminRole = await createRole({ name: 'Admin' });
currentUser = await createUser({ roleId: adminRole.id });
currentUser = await createUser();
token = await createAuthTokenByUserId(currentUser.id);
});
@@ -30,11 +28,11 @@ describe('GET /api/v1/admin/apps/:appKey/oauth-clients', () => {
});
const response = await request(app)
.get('/api/v1/admin/apps/deepl/oauth-clients')
.get('/internal/api/v1/apps/deepl/oauth-clients')
.set('Authorization', token)
.expect(200);
const expectedPayload = getAdminOAuthClientsMock([
const expectedPayload = getOAuthClientsMock([
oauthClientTwo,
oauthClientOne,
]);

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const substeps = await App.findTriggerSubsteps(

View File

@@ -1,12 +1,12 @@
import { describe, it, expect, beforeEach } from 'vitest';
import request from 'supertest';
import App from '../../../../models/app';
import app from '../../../../app.js';
import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id';
import { createUser } from '../../../../../test/factories/user';
import getTriggerSubstepsMock from '../../../../../test/mocks/rest/api/v1/apps/get-trigger-substeps.js';
import App from '../../../../../models/app.js';
import app from '../../../../../app.js';
import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js';
import { createUser } from '../../../../../../test/factories/user.js';
import getTriggerSubstepsMock from '../../../../../../test/mocks/rest/internal/api/v1/apps/get-trigger-substeps.js';
describe('GET /api/v1/apps/:appKey/triggers/:triggerKey/substeps', () => {
describe('GET /internal/api/v1/apps/:appKey/triggers/:triggerKey/substeps', () => {
let currentUser, exampleApp, token;
beforeEach(async () => {
@@ -21,7 +21,7 @@ describe('GET /api/v1/apps/:appKey/triggers/:triggerKey/substeps', () => {
(trigger) => trigger.key === 'newIssues'
);
const endpointUrl = `/api/v1/apps/${exampleApp.key}/triggers/${exampleTrigger.key}/substeps`;
const endpointUrl = `/internal/api/v1/apps/${exampleApp.key}/triggers/${exampleTrigger.key}/substeps`;
const response = await request(app)
.get(endpointUrl)
@@ -34,13 +34,15 @@ describe('GET /api/v1/apps/:appKey/triggers/:triggerKey/substeps', () => {
it('should return not found response for invalid app key', async () => {
await request(app)
.get('/api/v1/apps/invalid-app-key/triggers/invalid-trigger-key/substeps')
.get(
'/internal/api/v1/apps/invalid-app-key/triggers/invalid-trigger-key/substeps'
)
.set('Authorization', token)
.expect(404);
});
it('should return empty array for invalid trigger key', async () => {
const endpointUrl = `/api/v1/apps/${exampleApp.key}/triggers/invalid-trigger-key/substeps`;
const endpointUrl = `/internal/api/v1/apps/${exampleApp.key}/triggers/invalid-trigger-key/substeps`;
const response = await request(app)
.get(endpointUrl)

View File

@@ -1,5 +1,5 @@
import App from '../../../../models/app.js';
import { renderObject } from '../../../../helpers/renderer.js';
import App from '../../../../../models/app.js';
import { renderObject } from '../../../../../helpers/renderer.js';
export default async (request, response) => {
const triggers = await App.findTriggersByKey(request.params.appKey);

Some files were not shown because too many files have changed in this diff Show More