!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

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
Free 13.01 GB of 57.97 GB (22.45%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     fronius.validation.spec.js (4.24 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
"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 ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0045 ]--