Check if an extension has been added for observables

I want to unit test my function, which basically creates an array of parameters observed from the array (TypeScript code):

private BuildObservables(parameters: Parameter[]) {
        var observables = {};

        for (var parameterName in parameters) {

            var p = parameters[parameterName];

            // Build observable
            observables[parameterName] = ko.observable(p.Value);

            // Attach validation
            if (p.IsRequired) {
                observables[parameterName].extend({ required: true });
            }
        }
        return observables;
    }

My test is as follows:

var parameters = [];

// new Parameter(int value, bool isRequired)
parameters["Param1"] = new Parameter("123", true);
parameters["Param2"] = new Parameter("456", false);

var viewModel = BuildObservables(parameters);

ok(viewModel["Param1"] != null);
ok(viewModel["Param2"] != null);

In the case of the first parameter, where the isRequiredvalue was set true, how to check whether the extension (validation) was applied (the "Attach verification" part in BuildObservables)?

Edit:

In another function, I pin subscribers, and I don’t know how to check if they were attached correctly.

+5
source share
2 answers

You can call rules()to your observable, it should give you an array.

observables[parameterName].rules();
+3
source

, , , , , "" , ( : , , ). ​​

, , (.. ) - , .

- , jasmine , , , - , .

+1

All Articles