// import request from 'supertest' // import main from '../../../../src/index' // import { testWorkspaceId } from '../../../../src/utils/addDevelopmentUser'; // import { deleteAllSecrets, getAllSecrets, getJWTFromTestUser, getServiceTokenFromTestUser } from '../../../helper/helper'; // // eslint-disable-next-line @typescript-eslint/no-var-requires // const batchSecretRequestWithNoOverride = require('../../../data/batch-secrets-no-override.json'); // // eslint-disable-next-line @typescript-eslint/no-var-requires // const batchSecretRequestWithOverrides = require('../../../data/batch-secrets-with-overrides.json'); // // eslint-disable-next-line @typescript-eslint/no-var-requires // const batchSecretRequestWithBadRequest = require('../../../data/batch-create-secrets-with-some-missing-params.json'); // let server: any; // beforeAll(async () => { // server = await main; // }); // afterAll(async () => { // server.close(); // }); // describe("GET /api/v2/secrets", () => { // describe("Get secrets via JTW", () => { // test("should create secrets and read secrets via jwt", async () => { // try { // // get login details // const loginResponse = await getJWTFromTestUser() // // create creates // const createSecretsResponse = await request(server) // .post("/api/v2/secrets/batch") // .set('Authorization', `Bearer ${loginResponse.token}`) // .send({ // workspaceId: testWorkspaceId, // environment: "dev", // requests: batchSecretRequestWithNoOverride // }) // expect(createSecretsResponse.statusCode).toBe(200) // const getSecrets = await request(server) // .get("/api/v2/secrets") // .set('Authorization', `Bearer ${loginResponse.token}`) // .query({ // workspaceId: testWorkspaceId, // environment: "dev" // }) // expect(getSecrets.statusCode).toBe(200) // expect(getSecrets.body).toHaveProperty("secrets") // expect(getSecrets.body.secrets).toHaveLength(3) // expect(getSecrets.body.secrets).toBeInstanceOf(Array); // getSecrets.body.secrets.forEach((secret: any) => { // expect(secret).toHaveProperty('_id'); // expect(secret._id).toBeTruthy(); // expect(secret).toHaveProperty('version'); // expect(secret.version).toBeTruthy(); // expect(secret).toHaveProperty('workspace'); // expect(secret.workspace).toBeTruthy(); // expect(secret).toHaveProperty('type'); // expect(secret.type).toBeTruthy(); // expect(secret).toHaveProperty('tags'); // expect(secret.tags).toHaveLength(0); // expect(secret).toHaveProperty('environment'); // expect(secret.environment).toEqual("dev"); // expect(secret).toHaveProperty('secretKeyCiphertext'); // expect(secret.secretKeyCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyIV'); // expect(secret.secretKeyIV).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyTag'); // expect(secret.secretKeyTag).toBeTruthy(); // expect(secret).toHaveProperty('secretValueCiphertext'); // expect(secret.secretValueCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretValueIV'); // expect(secret.secretValueIV).toBeTruthy(); // expect(secret).toHaveProperty('secretValueTag'); // expect(secret.secretValueTag).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentCiphertext'); // expect(secret.secretCommentCiphertext).toBeFalsy(); // expect(secret).toHaveProperty('secretCommentIV'); // expect(secret.secretCommentIV).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentTag'); // expect(secret.secretCommentTag).toBeTruthy(); // expect(secret).toHaveProperty('createdAt'); // expect(secret.createdAt).toBeTruthy(); // expect(secret).toHaveProperty('updatedAt'); // expect(secret.updatedAt).toBeTruthy(); // }); // } finally { // // clean up // await deleteAllSecrets() // } // }) // test("Get secrets via jwt when personal overrides exist", async () => { // try { // // get login details // const loginResponse = await getJWTFromTestUser() // // create creates // const createSecretsResponse = await request(server) // .post("/api/v2/secrets/batch") // .set('Authorization', `Bearer ${loginResponse.token}`) // .send({ // workspaceId: testWorkspaceId, // environment: "dev", // requests: batchSecretRequestWithOverrides // }) // expect(createSecretsResponse.statusCode).toBe(200) // const getSecrets = await request(server) // .get("/api/v2/secrets") // .set('Authorization', `Bearer ${loginResponse.token}`) // .query({ // workspaceId: testWorkspaceId, // environment: "dev" // }) // expect(getSecrets.statusCode).toBe(200) // expect(getSecrets.body).toHaveProperty("secrets") // expect(getSecrets.body.secrets).toHaveLength(2) // expect(getSecrets.body.secrets).toBeInstanceOf(Array); // getSecrets.body.secrets.forEach((secret: any) => { // expect(secret).toHaveProperty('_id'); // expect(secret._id).toBeTruthy(); // expect(secret).toHaveProperty('version'); // expect(secret.version).toBeTruthy(); // expect(secret).toHaveProperty('workspace'); // expect(secret.workspace).toBeTruthy(); // expect(secret).toHaveProperty('type'); // expect(secret.type).toBeTruthy(); // expect(secret).toHaveProperty('tags'); // expect(secret.tags).toHaveLength(0); // expect(secret).toHaveProperty('environment'); // expect(secret.environment).toEqual("dev"); // expect(secret).toHaveProperty('secretKeyCiphertext'); // expect(secret.secretKeyCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyIV'); // expect(secret.secretKeyIV).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyTag'); // expect(secret.secretKeyTag).toBeTruthy(); // expect(secret).toHaveProperty('secretValueCiphertext'); // expect(secret.secretValueCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretValueIV'); // expect(secret.secretValueIV).toBeTruthy(); // expect(secret).toHaveProperty('secretValueTag'); // expect(secret.secretValueTag).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentCiphertext'); // expect(secret.secretCommentCiphertext).toBeFalsy(); // expect(secret).toHaveProperty('secretCommentIV'); // expect(secret.secretCommentIV).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentTag'); // expect(secret.secretCommentTag).toBeTruthy(); // expect(secret).toHaveProperty('createdAt'); // expect(secret.createdAt).toBeTruthy(); // expect(secret).toHaveProperty('updatedAt'); // expect(secret.updatedAt).toBeTruthy(); // }); // } finally { // // clean up // await deleteAllSecrets() // } // }) // }) // describe("fetch secrets via service token", () => { // test("Get secrets via jwt when personal overrides exist", async () => { // try { // // get login details // const loginResponse = await getJWTFromTestUser() // // create creates // const createSecretsResponse = await request(server) // .post("/api/v2/secrets/batch") // .set('Authorization', `Bearer ${loginResponse.token}`) // .send({ // workspaceId: testWorkspaceId, // environment: "dev", // requests: batchSecretRequestWithOverrides // }) // expect(createSecretsResponse.statusCode).toBe(200) // // now use the service token to fetch secrets // const serviceToken = await getServiceTokenFromTestUser() // const getSecrets = await request(server) // .get("/api/v2/secrets") // .set('Authorization', `Bearer ${serviceToken}`) // .query({ // workspaceId: testWorkspaceId, // environment: "dev" // }) // expect(getSecrets.statusCode).toBe(200) // expect(getSecrets.body).toHaveProperty("secrets") // expect(getSecrets.body.secrets).toHaveLength(2) // expect(getSecrets.body.secrets).toBeInstanceOf(Array); // getSecrets.body.secrets.forEach((secret: any) => { // expect(secret).toHaveProperty('_id'); // expect(secret._id).toBeTruthy(); // expect(secret).toHaveProperty('version'); // expect(secret.version).toBeTruthy(); // expect(secret).toHaveProperty('workspace'); // expect(secret.workspace).toBeTruthy(); // expect(secret).toHaveProperty('type'); // expect(secret.type).toBeTruthy(); // expect(secret).toHaveProperty('tags'); // expect(secret.tags).toHaveLength(0); // expect(secret).toHaveProperty('environment'); // expect(secret.environment).toEqual("dev"); // expect(secret).toHaveProperty('secretKeyCiphertext'); // expect(secret.secretKeyCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyIV'); // expect(secret.secretKeyIV).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyTag'); // expect(secret.secretKeyTag).toBeTruthy(); // expect(secret).toHaveProperty('secretValueCiphertext'); // expect(secret.secretValueCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretValueIV'); // expect(secret.secretValueIV).toBeTruthy(); // expect(secret).toHaveProperty('secretValueTag'); // expect(secret.secretValueTag).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentCiphertext'); // expect(secret.secretCommentCiphertext).toBeFalsy(); // expect(secret).toHaveProperty('secretCommentIV'); // expect(secret.secretCommentIV).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentTag'); // expect(secret.secretCommentTag).toBeTruthy(); // expect(secret).toHaveProperty('createdAt'); // expect(secret.createdAt).toBeTruthy(); // expect(secret).toHaveProperty('updatedAt'); // expect(secret.updatedAt).toBeTruthy(); // }); // } finally { // // clean up // await deleteAllSecrets() // } // }) // test("should create secrets and read secrets via service token when no overrides", async () => { // try { // // get login details // const loginResponse = await getJWTFromTestUser() // // create secrets // const createSecretsResponse = await request(server) // .post("/api/v2/secrets/batch") // .set('Authorization', `Bearer ${loginResponse.token}`) // .send({ // workspaceId: testWorkspaceId, // environment: "dev", // requests: batchSecretRequestWithNoOverride // }) // expect(createSecretsResponse.statusCode).toBe(200) // // now use the service token to fetch secrets // const serviceToken = await getServiceTokenFromTestUser() // const getSecrets = await request(server) // .get("/api/v2/secrets") // .set('Authorization', `Bearer ${serviceToken}`) // .query({ // workspaceId: testWorkspaceId, // environment: "dev" // }) // expect(getSecrets.statusCode).toBe(200) // expect(getSecrets.body).toHaveProperty("secrets") // expect(getSecrets.body.secrets).toHaveLength(3) // expect(getSecrets.body.secrets).toBeInstanceOf(Array); // getSecrets.body.secrets.forEach((secret: any) => { // expect(secret).toHaveProperty('_id'); // expect(secret._id).toBeTruthy(); // expect(secret).toHaveProperty('version'); // expect(secret.version).toBeTruthy(); // expect(secret).toHaveProperty('workspace'); // expect(secret.workspace).toBeTruthy(); // expect(secret).toHaveProperty('type'); // expect(secret.type).toBeTruthy(); // expect(secret).toHaveProperty('tags'); // expect(secret.tags).toHaveLength(0); // expect(secret).toHaveProperty('environment'); // expect(secret.environment).toEqual("dev"); // expect(secret).toHaveProperty('secretKeyCiphertext'); // expect(secret.secretKeyCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyIV'); // expect(secret.secretKeyIV).toBeTruthy(); // expect(secret).toHaveProperty('secretKeyTag'); // expect(secret.secretKeyTag).toBeTruthy(); // expect(secret).toHaveProperty('secretValueCiphertext'); // expect(secret.secretValueCiphertext).toBeTruthy(); // expect(secret).toHaveProperty('secretValueIV'); // expect(secret.secretValueIV).toBeTruthy(); // expect(secret).toHaveProperty('secretValueTag'); // expect(secret.secretValueTag).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentCiphertext'); // expect(secret.secretCommentCiphertext).toBeFalsy(); // expect(secret).toHaveProperty('secretCommentIV'); // expect(secret.secretCommentIV).toBeTruthy(); // expect(secret).toHaveProperty('secretCommentTag'); // expect(secret.secretCommentTag).toBeTruthy(); // expect(secret).toHaveProperty('createdAt'); // expect(secret.createdAt).toBeTruthy(); // expect(secret).toHaveProperty('updatedAt'); // expect(secret.updatedAt).toBeTruthy(); // }); // } finally { // // clean up // await deleteAllSecrets() // } // }) // }) // describe("create secrets via JWT", () => { // test("Create secrets via jwt when some requests have missing required parameters", async () => { // // get login details // const loginResponse = await getJWTFromTestUser() // // create creates // const createSecretsResponse = await request(server) // .post("/api/v2/secrets/batch") // .set('Authorization', `Bearer ${loginResponse.token}`) // .send({ // workspaceId: testWorkspaceId, // environment: "dev", // requests: batchSecretRequestWithBadRequest // }) // const allSecretsInDB = await getAllSecrets() // expect(createSecretsResponse.statusCode).toBe(500) // TODO should be set to 400 // expect(allSecretsInDB).toHaveLength(0) // }) // }) // })