| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import LokiDatasource from './datasource';
- describe('LokiDatasource', () => {
- const instanceSettings = {
- url: 'myloggingurl',
- };
- describe('when performing testDataSource', () => {
- let ds;
- let result;
- describe('and call succeeds', () => {
- beforeEach(async () => {
- const backendSrv = {
- async datasourceRequest() {
- return Promise.resolve({
- status: 200,
- data: {
- values: ['avalue'],
- },
- });
- },
- };
- ds = new LokiDatasource(instanceSettings, backendSrv, {});
- result = await ds.testDatasource();
- });
- it('should return successfully', () => {
- expect(result.status).toBe('success');
- });
- });
- describe('and call fails with 401 error', () => {
- beforeEach(async () => {
- const backendSrv = {
- async datasourceRequest() {
- return Promise.reject({
- statusText: 'Unauthorized',
- status: 401,
- data: {
- message: 'Unauthorized',
- },
- });
- },
- };
- ds = new LokiDatasource(instanceSettings, backendSrv, {});
- result = await ds.testDatasource();
- });
- it('should return error status and a detailed error message', () => {
- expect(result.status).toEqual('error');
- expect(result.message).toBe('Loki: Unauthorized. 401. Unauthorized');
- });
- });
- describe('and call fails with 404 error', () => {
- beforeEach(async () => {
- const backendSrv = {
- async datasourceRequest() {
- return Promise.reject({
- statusText: 'Not found',
- status: 404,
- data: '404 page not found',
- });
- },
- };
- ds = new LokiDatasource(instanceSettings, backendSrv, {});
- result = await ds.testDatasource();
- });
- it('should return error status and a detailed error message', () => {
- expect(result.status).toEqual('error');
- expect(result.message).toBe('Loki: Not found. 404. 404 page not found');
- });
- });
- describe('and call fails with 502 error', () => {
- beforeEach(async () => {
- const backendSrv = {
- async datasourceRequest() {
- return Promise.reject({
- statusText: 'Bad Gateway',
- status: 502,
- data: '',
- });
- },
- };
- ds = new LokiDatasource(instanceSettings, backendSrv, {});
- result = await ds.testDatasource();
- });
- it('should return error status and a detailed error message', () => {
- expect(result.status).toEqual('error');
- expect(result.message).toBe('Loki: Bad Gateway. 502');
- });
- });
- });
- });
|