From fa9c5b3efe91de3cde2bffec190a9793cf86241e Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 27 May 2022 18:33:18 +0800 Subject: [PATCH] Add test for list api keys --- packages/api/src/entity/api_key.ts | 4 +- packages/api/test/resolvers/api_key.test.ts | 57 ++++++++++++++++++++- 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/packages/api/src/entity/api_key.ts b/packages/api/src/entity/api_key.ts index b4170de91..f95335bdd 100644 --- a/packages/api/src/entity/api_key.ts +++ b/packages/api/src/entity/api_key.ts @@ -29,9 +29,9 @@ export class ApiKey { @CreateDateColumn() createdAt!: Date - @Column('date') + @Column('timestamp') expiresAt!: Date - @Column('date', { nullable: true }) + @Column('timestamp', { nullable: true }) usedAt!: Date | null } diff --git a/packages/api/test/resolvers/api_key.test.ts b/packages/api/test/resolvers/api_key.test.ts index 40503d434..18e12e775 100644 --- a/packages/api/test/resolvers/api_key.test.ts +++ b/packages/api/test/resolvers/api_key.test.ts @@ -30,6 +30,7 @@ describe('Api Key resolver', () => { let query: string let expiresAt: string let name: string + let apiKeyId: string before(async () => { // create test user and login @@ -102,7 +103,6 @@ describe('Api Key resolver', () => { describe('revoke api key', () => { let apiKey: string - let apiKeyId: string before(async () => { query = ` @@ -153,4 +153,59 @@ describe('Api Key resolver', () => { return testAPIKey(apiKey).expect(500) }) }) + + describe('get api keys', () => { + before(async () => { + name = 'test-get-api-keys' + query = ` + mutation { + generateApiKey(input: { + name: "${name}" + expiresAt: "${new Date( + Date.now() + 1000 * 60 * 60 * 24 + ).toISOString()}" + }) { + ... on GenerateApiKeySuccess { + apiKey { + id + key + } + } + ... on GenerateApiKeyError { + errorCodes + } + } + } + ` + + const response = await graphqlRequest(query, authToken) + apiKeyId = response.body.data.generateApiKey.apiKey.id + }) + + it('should get api keys', async () => { + query = ` + query { + apiKeys { + ... on ApiKeysSuccess { + apiKeys { + id + name + expiresAt + usedAt + } + } + ... on ApiKeysError { + errorCodes + } + } + } + ` + + const response = await graphqlRequest(query, authToken).expect(200) + expect(response.body.data.apiKeys.apiKeys).to.be.an('array') + expect(response.body.data.apiKeys.apiKeys[0].id).to.eql(apiKeyId) + expect(response.body.data.apiKeys.apiKeys[0].name).to.eql(name) + expect(response.body.data.apiKeys.apiKeys[0].usedAt).to.be.null + }) + }) })