mirror of https://github.com/node-red/node-red.git
96 lines
3.1 KiB
JavaScript
96 lines
3.1 KiB
JavaScript
const should = require("should");
|
|
const NR_TEST_UTILS = require("nr-test-utils");
|
|
|
|
const telemetryApi = NR_TEST_UTILS.require("@node-red/runtime/lib/telemetry/index");
|
|
|
|
describe("telemetry", function() {
|
|
|
|
afterEach(function () {
|
|
telemetryApi.stop()
|
|
messages = []
|
|
})
|
|
|
|
let messages = []
|
|
|
|
function getMockRuntime(settings) {
|
|
return {
|
|
settings: {
|
|
get: key => { return settings[key] },
|
|
set: (key, value) => { settings[key] = value },
|
|
available: () => true,
|
|
},
|
|
log: {
|
|
debug: (msg) => { messages.push(msg)}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Principles to test:
|
|
// - No settings at all; disable telemetry
|
|
// - Runtime settings only; do what it says
|
|
// - User settings take precedence over runtime settings
|
|
|
|
it('Disables telemetry with no settings present', function () {
|
|
telemetryApi.init(getMockRuntime({}))
|
|
messages.should.have.length(0)
|
|
// Returns undefined as we don't know either way
|
|
;(telemetryApi.isEnabled() === undefined).should.be.true()
|
|
})
|
|
it('Runtime settings - enable', function () {
|
|
// Enabled in runtime settings
|
|
telemetryApi.init(getMockRuntime({
|
|
telemetry: { enabled: true }
|
|
}))
|
|
telemetryApi.isEnabled().should.be.true()
|
|
messages.should.have.length(1)
|
|
;/Telemetry enabled/.test(messages[0]).should.be.true()
|
|
})
|
|
it('Runtime settings - disable', function () {
|
|
telemetryApi.init(getMockRuntime({
|
|
telemetry: { enabled: false },
|
|
}))
|
|
// Returns false, not undefined
|
|
telemetryApi.isEnabled().should.be.false()
|
|
messages.should.have.length(0)
|
|
})
|
|
|
|
it('User settings - enable overrides runtime settings', function () {
|
|
telemetryApi.init(getMockRuntime({
|
|
telemetry: { enabled: false },
|
|
telemetryEnabled: true
|
|
}))
|
|
telemetryApi.isEnabled().should.be.true()
|
|
messages.should.have.length(1)
|
|
;/Telemetry enabled/.test(messages[0]).should.be.true()
|
|
})
|
|
|
|
it('User settings - disable overrides runtime settings', function () {
|
|
telemetryApi.init(getMockRuntime({
|
|
telemetry: { enabled: true },
|
|
telemetryEnabled: false
|
|
}))
|
|
telemetryApi.isEnabled().should.be.false()
|
|
messages.should.have.length(0)
|
|
})
|
|
|
|
it('Can enable/disable telemetry', function () {
|
|
const settings = {}
|
|
telemetryApi.init(getMockRuntime(settings))
|
|
;(telemetryApi.isEnabled() === undefined).should.be.true()
|
|
|
|
telemetryApi.enable()
|
|
|
|
telemetryApi.isEnabled().should.be.true()
|
|
messages.should.have.length(1)
|
|
;/Telemetry enabled/.test(messages[0]).should.be.true()
|
|
settings.should.have.property('telemetryEnabled', true)
|
|
|
|
telemetryApi.disable()
|
|
|
|
telemetryApi.isEnabled().should.be.false()
|
|
messages.should.have.length(2)
|
|
;/Telemetry disabled/.test(messages[1]).should.be.true()
|
|
settings.should.have.property('telemetryEnabled', false)
|
|
|
|
})
|
|
}) |