Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /netdata/tests/node.d/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
// SPDX-License-Identifier: GPL-3.0-or-later
var netdata = require("../../node.d/node_modules/netdata");
// remember: subject will be a singleton!
var subject = require("../../node.d/fronius.node");
var service = netdata.service({
name: "validation",
module: this
});
describe("fronius response validation", function () {
it("should do nothing if response is null", function () {
netdata.send = jasmine.createSpy("send");
subject.processResponse(service, null);
var result = netdata.send.calls.count();
expect(result).toBe(0);
});
it("should return null if response is null", function () {
var result = subject.convertToJson(null);
expect(result).toBeNull();
});
it("should return null and log error if response cannot be parsed", function () {
netdata.error = jasmine.createSpy("error");
// trailing commas are enough to create syntax exceptions
var result = subject.convertToJson("{name,}");
expect(result).toBeNull();
expect(netdata.error.calls.count()).toBe(1);
});
it("should return true if response is valid", function () {
var result = subject.isResponseValid({
"Body": {
"Data": {
"Site": {
"Mode": "meter"
},
"Inverters": {
"1": {}
}
}
}
});
expect(result).toBeTruthy();
});
it("should return false if response is missing data", function () {
var result = subject.isResponseValid({
"Body": {}
});
expect(result).toBeFalsy();
});
it("should return false if response is missing inverter", function () {
var result = subject.isResponseValid({
"Body": {
"Data": {
"Site": {}
}
}
});
expect(result).toBeFalsy();
});
it("should return false if response is missing inverter", function () {
var result = subject.isResponseValid({
"Body": {
"Data": {
"Inverters": {}
}
}
});
expect(result).toBeFalsy();
});
});
describe("fronius configuration validation", function () {
it("should return 0 if there are no servers configured", function () {
var result = subject.configure({});
expect(result).toBe(0);
});
it("should return 0 if the servers array is empty", function () {
var result = subject.configure({
"servers": []
});
expect(result).toBe(0);
});
it("should return 0 if there is one server configured incorrectly", function () {
var result = subject.configure({
"servers": [{}]
});
expect(result).toBe(0);
});
it("should return 1 if there is one server configured", function () {
subject.serviceExecute = jasmine.createSpy("serviceExecute");
var name = "solar1";
var result = subject.configure({
"servers": [{
"name": name,
"api_path": "/api/",
"hostname": "solar1.local"
}]
});
expect(result).toBe(1);
expect(subject.serviceExecute).toHaveBeenCalledWith(name, "solar1.local/api/", 5);
});
it("should return 2 if there are two servers configured", function () {
subject.serviceExecute = jasmine.createSpy("serviceExecute");
var name1 = "solar 1";
var name2 = "solar 2";
var result = subject.configure({
"servers": [
{
"name": name1,
"api_path": "/",
"hostname": "solar1.local"
},
{
"name": name2,
"api_path": "/",
"hostname": "solar2.local",
"update_every": 3
}
]
});
expect(result).toBe(2);
expect(subject.serviceExecute).toHaveBeenCalledWith(name1, "solar1.local/", 5);
expect(subject.serviceExecute).toHaveBeenCalledWith(name2, "solar2.local/", 3);
});
});
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0045 ]-- |