mirror of https://github.com/Budibase/budibase.git
committed by
GitHub
20 changed files with 147 additions and 111 deletions
@ -1,27 +0,0 @@ |
|||
import { EventEmitter } from "events" |
|||
import * as context from "../../context" |
|||
import { Identity, Event } from "@budibase/types" |
|||
|
|||
export interface EmittedEvent { |
|||
tenantId: string |
|||
identity: Identity |
|||
appId: string | undefined |
|||
properties: any |
|||
} |
|||
|
|||
class BBEventEmitter extends EventEmitter { |
|||
emitEvent(event: Event, properties: any, identity: Identity) { |
|||
const tenantId = context.getTenantId() |
|||
const appId = context.getAppId() |
|||
|
|||
const emittedEvent: EmittedEvent = { |
|||
tenantId, |
|||
identity, |
|||
appId, |
|||
properties, |
|||
} |
|||
this.emit(event, emittedEvent) |
|||
} |
|||
} |
|||
|
|||
export const emitter = new BBEventEmitter() |
|||
@ -1 +0,0 @@ |
|||
export * from "./BBEventEmitter" |
|||
@ -0,0 +1,59 @@ |
|||
const setup = require("./utilities") |
|||
const { events, constants, db } = require("@budibase/backend-core") |
|||
|
|||
describe("/static", () => { |
|||
let request = setup.getRequest() |
|||
let config = setup.getConfig() |
|||
let app |
|||
|
|||
const timezone = "Europe/London" |
|||
|
|||
afterAll(setup.afterAll) |
|||
|
|||
beforeEach(async () => { |
|||
app = await config.init() |
|||
jest.clearAllMocks() |
|||
}) |
|||
|
|||
describe("/ping", () => { |
|||
it("should ping from builder", async () => { |
|||
await request |
|||
.post("/api/bbtel/ping") |
|||
.send({source: "builder", timezone}) |
|||
.set(config.defaultHeaders()) |
|||
.expect(200) |
|||
|
|||
expect(events.serve.servedBuilder).toBeCalledTimes(1) |
|||
expect(events.serve.servedBuilder).toBeCalledWith(timezone) |
|||
expect(events.serve.servedApp).not.toBeCalled() |
|||
expect(events.serve.servedAppPreview).not.toBeCalled() |
|||
}) |
|||
|
|||
it("should ping from app preview", async () => { |
|||
await request |
|||
.post("/api/bbtel/ping") |
|||
.send({source: "app", timezone}) |
|||
.set(config.defaultHeaders()) |
|||
.expect(200) |
|||
|
|||
expect(events.serve.servedAppPreview).toBeCalledTimes(1) |
|||
expect(events.serve.servedAppPreview).toBeCalledWith(config.getApp(), timezone) |
|||
expect(events.serve.servedApp).not.toBeCalled() |
|||
}) |
|||
|
|||
it("should ping from app", async () => { |
|||
const headers = config.defaultHeaders() |
|||
headers[constants.Headers.APP_ID] = config.prodAppId |
|||
|
|||
await request |
|||
.post("/api/bbtel/ping") |
|||
.send({source: "app", timezone}) |
|||
.set(headers) |
|||
.expect(200) |
|||
|
|||
expect(events.serve.servedApp).toBeCalledTimes(1) |
|||
expect(events.serve.servedApp).toBeCalledWith(config.getProdApp(), timezone) |
|||
expect(events.serve.servedAppPreview).not.toBeCalled() |
|||
}) |
|||
}) |
|||
}) |
|||
@ -0,0 +1 @@ |
|||
export * from "./web" |
|||
@ -0,0 +1,9 @@ |
|||
export enum PingSource { |
|||
BUILDER = "builder", |
|||
APP = "app", |
|||
} |
|||
|
|||
export interface AnalyticsPingRequest { |
|||
source: PingSource |
|||
timezone: string |
|||
} |
|||
@ -0,0 +1 @@ |
|||
export * from "./analytics" |
|||
@ -1,11 +1,15 @@ |
|||
import { BaseEvent } from "./event" |
|||
|
|||
export interface BuilderServedEvent extends BaseEvent {} |
|||
export interface BuilderServedEvent extends BaseEvent { |
|||
timezone: string |
|||
} |
|||
|
|||
export interface AppServedEvent extends BaseEvent { |
|||
appVersion: string |
|||
timezone: string |
|||
} |
|||
|
|||
export interface AppPreviewServedEvent extends BaseEvent { |
|||
appVersion: string |
|||
timezone: string |
|||
} |
|||
|
|||
Loading…
Reference in new issue