2023-06-23 02:11:57 +01:00
|
|
|
const should = require("should");
|
|
|
|
const NR_TEST_UTILS = require("nr-test-utils");
|
|
|
|
const { Group } = NR_TEST_UTILS.require("@node-red/runtime/lib/flows/Group");
|
|
|
|
|
|
|
|
describe('Group', function () {
|
|
|
|
describe('getSetting', function () {
|
|
|
|
it("returns group name/id", async function () {
|
|
|
|
const group = new Group({
|
|
|
|
getSetting: v => v+v
|
|
|
|
}, {
|
|
|
|
name: "g1",
|
|
|
|
id: "group1"
|
|
|
|
})
|
|
|
|
await group.start()
|
|
|
|
|
|
|
|
group.getSetting("NR_GROUP_NAME").should.equal("g1")
|
|
|
|
group.getSetting("NR_GROUP_ID").should.equal("group1")
|
|
|
|
})
|
2024-06-10 16:15:06 +01:00
|
|
|
it("returns cloned env var property", async function () {
|
|
|
|
const group = new Group({
|
|
|
|
getSetting: v => v+v
|
|
|
|
}, {
|
|
|
|
name: "g1",
|
|
|
|
id: "group1",
|
|
|
|
env: [
|
|
|
|
{
|
|
|
|
name: 'jsonEnvVar',
|
|
|
|
type: 'json',
|
|
|
|
value: '{"a":1}'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
})
|
|
|
|
await group.start()
|
|
|
|
const result = group.getSetting('jsonEnvVar')
|
|
|
|
result.should.have.property('a', 1)
|
|
|
|
result.a = 2
|
|
|
|
result.b = 'hello'
|
|
|
|
|
|
|
|
const result2 = group.getSetting('jsonEnvVar')
|
|
|
|
result2.should.have.property('a', 1)
|
|
|
|
result2.should.not.have.property('b')
|
|
|
|
|
|
|
|
})
|
2023-06-23 02:11:57 +01:00
|
|
|
it("delegates to parent if not found", async function () {
|
|
|
|
const group = new Group({
|
|
|
|
getSetting: v => v+v
|
|
|
|
}, {
|
|
|
|
name: "g1",
|
|
|
|
id: "group1"
|
|
|
|
})
|
|
|
|
await group.start()
|
|
|
|
|
|
|
|
group.getSetting("123").should.equal("123123")
|
|
|
|
})
|
|
|
|
it("delegates to parent if explicit requested", async function () {
|
|
|
|
const parentGroup = new Group({
|
|
|
|
getSetting: v => v+v
|
|
|
|
}, {
|
|
|
|
name: "g0",
|
|
|
|
id: "group0"
|
|
|
|
})
|
|
|
|
const group = new Group(parentGroup, {
|
|
|
|
name: "g1",
|
|
|
|
id: "group1"
|
|
|
|
})
|
|
|
|
await parentGroup.start()
|
|
|
|
await group.start()
|
|
|
|
|
|
|
|
group.getSetting("$parent.NR_GROUP_NAME").should.equal("g0")
|
|
|
|
group.getSetting("$parent.NR_GROUP_ID").should.equal("group0")
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|