1 |
|
2 | const assert = require("chai").assert
|
3 | const util = require("../util")
|
4 | const d = require("debug")("raptorjs:test:app")
|
5 |
|
6 |
|
7 | const createApp = () => {
|
8 | return util.getRaptor().then((r) => {
|
9 | return util.createUserInstance().then((usr1) => {
|
10 | const usr1Id = usr1.Auth().getUser().id
|
11 | return r.App().create({
|
12 | name: util.randomName("app"),
|
13 | users: [{
|
14 | id: usr1Id,
|
15 | roles: ["operator"]
|
16 | }],
|
17 | roles: [{
|
18 | name: "operator",
|
19 | permissions: [
|
20 | "admin_device",
|
21 | "read_app",
|
22 | ]
|
23 | }]
|
24 | }).then((app) => {
|
25 | const rawdev = { name: util.randomName("dev"), domain: app.id }
|
26 | return r.Inventory().create(rawdev).then((dev) => {
|
27 | d("Created dev %s owner %s", dev.id, dev.userId)
|
28 | return usr1.App().read(app).then((app) => {
|
29 | d("usr1 %s can read app %s", usr1Id, app.id)
|
30 | return usr1.Inventory().read(dev.id).then(() => {
|
31 | d("usr1 %s can read device %s", usr1Id, dev.id)
|
32 | return Promise.resolve({
|
33 | usr1, r, dev, app
|
34 | })
|
35 | })
|
36 | })
|
37 | })
|
38 | })
|
39 | })
|
40 | })
|
41 | }
|
42 |
|
43 | describe("app service", function () {
|
44 |
|
45 | describe("App API", function () {
|
46 |
|
47 | it("should fail app read", function () {
|
48 | return util.createUserInstance().then((usr1) => {
|
49 | usr1.setConfig({
|
50 | url: usr1.getConfig().url,
|
51 | token: "42"
|
52 | })
|
53 | return usr1.App().read({ id: "foo" })
|
54 | .catch((e) => {
|
55 | assert.equal(401, e.code)
|
56 | return Promise.resolve()
|
57 | })
|
58 | })
|
59 | })
|
60 |
|
61 | it("should read app", function () {
|
62 | return createApp()
|
63 | })
|
64 |
|
65 | it("should not read tree", function () {
|
66 | return createApp().then(({ r, usr1, app }) => {
|
67 | return r.Tree().create({ name: util.randomName("tree"), domain: app.id })
|
68 | .then((tree) => {
|
69 | return usr1.Tree().read(tree.id).catch(() => Promise.resolve())
|
70 | })
|
71 | })
|
72 | })
|
73 |
|
74 | })
|
75 | })
|