forked from tsai/budibase
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" |
import { BaseEvent } from "./event" |
||||
|
|
||||
export interface BuilderServedEvent extends BaseEvent {} |
export interface BuilderServedEvent extends BaseEvent { |
||||
|
timezone: string |
||||
|
} |
||||
|
|
||||
export interface AppServedEvent extends BaseEvent { |
export interface AppServedEvent extends BaseEvent { |
||||
appVersion: string |
appVersion: string |
||||
|
timezone: string |
||||
} |
} |
||||
|
|
||||
export interface AppPreviewServedEvent extends BaseEvent { |
export interface AppPreviewServedEvent extends BaseEvent { |
||||
appVersion: string |
appVersion: string |
||||
|
timezone: string |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue