From 76e442940bac75707b1bb72d3ccf193017aa7492 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Wed, 18 Oct 2023 15:46:08 +0200 Subject: [PATCH] test: Add getAutomatischInfo graphQL query tests --- .../queries/get-automatisch-info.test.ts | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 packages/backend/src/graphql/queries/get-automatisch-info.test.ts diff --git a/packages/backend/src/graphql/queries/get-automatisch-info.test.ts b/packages/backend/src/graphql/queries/get-automatisch-info.test.ts new file mode 100644 index 00000000..0e72f2e8 --- /dev/null +++ b/packages/backend/src/graphql/queries/get-automatisch-info.test.ts @@ -0,0 +1,120 @@ +import { setMockConfig } from '../../../test/setup/set-mock-config'; +import request from 'supertest'; +import app from '../../app'; +import * as license from '../../helpers/license.ee'; + +describe('graphQL getAutomatischInfo query', () => { + const query = ` + query { + getAutomatischInfo { + isCloud + license { + id + name + expireAt + verified + } + } + } + `; + + describe('and without valid license', () => { + beforeEach(async () => { + jest.spyOn(license, 'getLicense').mockResolvedValue(false); + }); + + it('should return empty license data', async () => { + const response = await request(app) + .post('/graphql') + .send({ query }) + .expect(200); + + const expectedResponsePayload = { + data: { + getAutomatischInfo: { + isCloud: false, + license: { + id: null as string, + name: null as string, + expireAt: null as string, + verified: false, + }, + }, + }, + }; + + expect(response.body).toEqual(expectedResponsePayload); + }); + }); + + describe('and with valid license', () => { + beforeEach(async () => { + const mockedLicense = { + id: '123123', + name: 'Test License', + expireAt: '2025-08-09T10:56:54.144Z', + verified: true, + }; + + jest.spyOn(license, 'getLicense').mockResolvedValue(mockedLicense); + }); + + describe('and with cloud flag enabled', () => { + beforeEach(async () => { + setMockConfig({ isCloud: true }); + }); + + it('should return all license data', async () => { + const response = await request(app) + .post('/graphql') + .send({ query }) + .expect(200); + + const expectedResponsePayload = { + data: { + getAutomatischInfo: { + isCloud: true, + license: { + expireAt: '2025-08-09T10:56:54.144Z', + id: '123123', + name: 'Test License', + verified: true, + }, + }, + }, + }; + + expect(response.body).toEqual(expectedResponsePayload); + }); + }); + + describe('and with cloud flag disabled', () => { + beforeEach(async () => { + setMockConfig({ isCloud: false }); + }); + + it('should return all license data', async () => { + const response = await request(app) + .post('/graphql') + .send({ query }) + .expect(200); + + const expectedResponsePayload = { + data: { + getAutomatischInfo: { + isCloud: false, + license: { + expireAt: '2025-08-09T10:56:54.144Z', + id: '123123', + name: 'Test License', + verified: true, + }, + }, + }, + }; + + expect(response.body).toEqual(expectedResponsePayload); + }); + }); + }); +});