wip
This commit is contained in:
parent
0ea5235797
commit
1a94d2dca9
Binary file not shown.
|
@ -1,24 +0,0 @@
|
|||
const setup = require("./utilities")
|
||||
|
||||
describe("/templates", () => {
|
||||
let request = setup.getRequest()
|
||||
let config = setup.getConfig()
|
||||
|
||||
afterAll(setup.afterAll)
|
||||
|
||||
beforeAll(async () => {
|
||||
await config.init()
|
||||
})
|
||||
|
||||
describe("fetch", () => {
|
||||
it("should be able to fetch templates", async () => {
|
||||
const res = await request
|
||||
.get(`/api/templates`)
|
||||
.set(config.defaultHeaders())
|
||||
.expect("Content-Type", /json/)
|
||||
.expect(200)
|
||||
// this test is quite light right now, templates aren't heavily utilised yet
|
||||
expect(Array.isArray(res.body)).toEqual(true)
|
||||
})
|
||||
})
|
||||
})
|
|
@ -0,0 +1,80 @@
|
|||
import * as setup from "./utilities"
|
||||
import nock from "nock"
|
||||
|
||||
interface App {
|
||||
background: string
|
||||
icon: string
|
||||
category: string
|
||||
description: string
|
||||
name: string
|
||||
url: string
|
||||
type: string
|
||||
key: string
|
||||
image: string
|
||||
}
|
||||
|
||||
interface Manifest {
|
||||
templates: {
|
||||
app: { [key: string]: App }
|
||||
}
|
||||
}
|
||||
|
||||
function setManifest(manifest: Manifest) {
|
||||
nock("https://prod-budi-templates.s3-eu-west-1.amazonaws.com")
|
||||
.get("/manifest.json")
|
||||
.reply(200, manifest)
|
||||
}
|
||||
|
||||
function mockApp(key: string, tarPath: string) {
|
||||
nock("https://prod-budi-templates.s3-eu-west-1.amazonaws.com")
|
||||
.get(`/app/${key}.tar.gz`)
|
||||
.replyWithFile(200, tarPath)
|
||||
}
|
||||
|
||||
function mockAgencyClientPortal() {
|
||||
setManifest({
|
||||
templates: {
|
||||
app: {
|
||||
"Agency Client Portal": {
|
||||
background: "#20a3a8",
|
||||
icon: "Project",
|
||||
category: "Portals",
|
||||
description:
|
||||
"Manage clients, streamline communications, and securely share files.",
|
||||
name: "Agency Client Portal",
|
||||
url: "https://budibase.com/portals/templates/agency-client-portal-template/",
|
||||
type: "app",
|
||||
key: "app/agency-client-portal",
|
||||
image:
|
||||
"https://prod-budi-templates.s3.eu-west-1.amazonaws.com/images/agency-client-portal.png",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
mockApp(
|
||||
"agency-client-portal",
|
||||
"packages/server/src/api/routes/tests/data/agency-client-portal.tar.gz"
|
||||
)
|
||||
}
|
||||
|
||||
describe("/templates", () => {
|
||||
let config = setup.getConfig()
|
||||
|
||||
afterAll(setup.afterAll)
|
||||
beforeAll(async () => {
|
||||
await config.init()
|
||||
})
|
||||
beforeEach(() => {
|
||||
nock.cleanAll()
|
||||
mockAgencyClientPortal()
|
||||
})
|
||||
|
||||
describe("fetch", () => {
|
||||
it("should be able to fetch templates", async () => {
|
||||
const res = await config.api.templates.fetch()
|
||||
expect(res).toHaveLength(1)
|
||||
expect(res[0].name).toBe("Agency Client Portal")
|
||||
})
|
||||
})
|
||||
})
|
|
@ -12,6 +12,7 @@ import { AttachmentAPI } from "./attachment"
|
|||
import { UserAPI } from "./user"
|
||||
import { QueryAPI } from "./query"
|
||||
import { RoleAPI } from "./role"
|
||||
import { TemplateAPI } from "./template"
|
||||
|
||||
export default class API {
|
||||
table: TableAPI
|
||||
|
@ -27,6 +28,7 @@ export default class API {
|
|||
user: UserAPI
|
||||
query: QueryAPI
|
||||
roles: RoleAPI
|
||||
templates: TemplateAPI
|
||||
|
||||
constructor(config: TestConfiguration) {
|
||||
this.table = new TableAPI(config)
|
||||
|
@ -42,5 +44,6 @@ export default class API {
|
|||
this.user = new UserAPI(config)
|
||||
this.query = new QueryAPI(config)
|
||||
this.roles = new RoleAPI(config)
|
||||
this.templates = new TemplateAPI(config)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
import { Template } from "@budibase/types"
|
||||
import { Expectations, TestAPI } from "./base"
|
||||
|
||||
export class TemplateAPI extends TestAPI {
|
||||
fetch = async (expectations?: Expectations): Promise<Template[]> => {
|
||||
return await this._get<Template[]>("/api/templates", { expectations })
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue