test(`working token`, async () => { const res = await request(app) .get('/cubejs-api/v1/load?query={"measures":["Foo.bar"]}') .set('Authorization', 'foo') .expect(403); expect(res.body && res.body.error).toStrictEqual('Invalid token'); });
describe('gae_flex_mailjet_send_message gae_flex_mailjet_config', () => { describe('GET /', () => { it('should get 200', (done) => { request(app).get('/').expect(200, done); }); }); });
it('should handle insert error', async () => { const expectedResult = 'Invalid team specified'; await request(server) .post('/') .expect(400) .expect((response) => { assert.ok(response.text.includes(expectedResult)); }); });
test(`requires auth`, async () => { const res = await request(app).get('/cubejs-api/v1/load?query={"measures":["Foo.bar"]}').expect(403); expect(res.body && res.body.error).toStrictEqual("Authorization header isn't set"); });
return request(app.getHttpServer()) .get(getURL(`/users/public/${userID}`)) .set('Accept', 'application/json')
test(`post http method for load route`, async () => { const query = { measures: ['Foo.bar'], order: [ ['Foo.bar', 'asc'], ['Foo.foo', 'desc'], ], }; const res = await request(app) .post(`/cubejs-api/v1/load`) .set('Content-type', 'application/json') .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .send({ query }) .expect(200); expect(res.body.query.order).toStrictEqual([ { id: 'Foo.bar', desc: false }, { id: 'Foo.foo', desc: true }, ]); expect(res.body.query.measures).toStrictEqual(['Foo.bar']); });
const res = await request(reporter.server).get("/"); expect(res.statusCode).toBe(404); expect(res.text).toBe(""); const res = await request(reporter.server).get("/metrics").set("Accept-Encoding", "none"); expect(res.statusCode).toBe(200); expect(res.headers["content-type"]).toBe("text/plain; version=0.0.4; charset=utf-8"); reporter.generatePrometheusResponse.mockClear(); const res = await request(reporter.server).get("/metrics").set("Accept-Encoding", "gzip"); expect(res.statusCode).toBe(200); expect(res.headers["content-type"]).toBe("text/plain; version=0.0.4; charset=utf-8");
test(`order support object format`, async () => { const query = { measures: ['Foo.bar'], order: { 'Foo.bar': 'asc', }, }; const res = await request(app) .get(`/cubejs-api/v1/load?query=${JSON.stringify(query)}`) .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .expect(200); expect(res.body.query.order).toStrictEqual([{ id: 'Foo.bar', desc: false }]); });
return request(app.getHttpServer()) .post(getURL('/articles')) .set('Accept', 'application/json')
test(`date range padding`, async () => { const res = await request(app) .get( '/cubejs-api/v1/load?query={"measures":["Foo.bar"],"timeDimensions":[{"dimension":"Foo.time","granularity":"hour","dateRange":["2020-01-01","2020-01-01"]}]}' ) .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .expect(200); console.log(res.body); expect(res.body.query.timeDimensions[0].dateRange).toStrictEqual([ '2020-01-01T00:00:00.000', '2020-01-01T23:59:59.999', ]); });
test(`null filter values`, async () => { const res = await request(app) .get( '/cubejs-api/v1/load?query={"measures":["Foo.bar"],"filters":[{"dimension":"Foo.id","operator":"equals","values":[null]}]}' ) .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .expect(200); console.log(res.body); expect(res.body && res.body.data).toStrictEqual([{ 'Foo.bar': 42 }]); });
it('should display the default page', async () => { await request(server) .get('/') .expect(200) .expect((response) => { assert.ok(response.text.includes('Tabs VS Spaces')); }); });
test(`passes correct token`, async () => { const res = await request(app) .get('/cubejs-api/v1/load?query={}') .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .expect(400); expect(res.body && res.body.error).toStrictEqual( 'Query should contain either measures, dimensions or timeDimensions with granularities in order to be valid' ); });
test(`order support array of tuples`, async () => { const query = { measures: ['Foo.bar'], order: [ ['Foo.bar', 'asc'], ['Foo.foo', 'desc'], ], }; const res = await request(app) .get(`/cubejs-api/v1/load?query=${JSON.stringify(query)}`) .set('Authorization', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.t-IDcSemACt8x4iTMCda8Yhe3iZaWbvV5XKSTbuAn0M') .expect(200); expect(res.body.query.order).toStrictEqual([ { id: 'Foo.bar', desc: false }, { id: 'Foo.foo', desc: true }, ]); });