Skip to content

Commit 6de42eb

Browse files
committed
Fix for radios-inline tests
1 parent 7d36108 commit 6de42eb

File tree

1 file changed

+98
-21
lines changed

1 file changed

+98
-21
lines changed

test/directives/schema-form-test.js

Lines changed: 98 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1943,26 +1943,6 @@ describe('directive',function(){
19431943
]
19441944
}
19451945
},
1946-
{
1947-
name: 'radios inline',
1948-
property: {
1949-
type: 'boolean',
1950-
},
1951-
form: {
1952-
key: ["field"],
1953-
type: "radios-inline",
1954-
titleMap: [
1955-
{
1956-
"value": false,
1957-
"name": "No way"
1958-
},
1959-
{
1960-
"value": true,
1961-
"name": "OK"
1962-
}
1963-
]
1964-
}
1965-
},
19661946
{
19671947
name: 'select',
19681948
property: {
@@ -2115,7 +2095,7 @@ describe('directive',function(){
21152095
]
21162096
}
21172097
};
2118-
2098+
21192099
inject(function($compile, $rootScope){
21202100
var scope = $rootScope.$new();
21212101
scope.model = {
@@ -2143,6 +2123,103 @@ describe('directive',function(){
21432123
});
21442124
});
21452125

2126+
it('should not add "has-success" class to radios-inline field if a correct value is entered, but disableSuccessState is set on form', function () {
2127+
2128+
var field = {
2129+
name: 'radios',
2130+
property: {
2131+
type: 'boolean',
2132+
},
2133+
form: {
2134+
key: ["field"],
2135+
type: "radios",
2136+
titleMap: [
2137+
{
2138+
"value": false,
2139+
"name": "No way"
2140+
},
2141+
{
2142+
"value": true,
2143+
"name": "OK"
2144+
}
2145+
]
2146+
}
2147+
};
2148+
2149+
inject(function($compile, $rootScope){
2150+
var scope = $rootScope.$new();
2151+
scope.model = {}
2152+
scope.schema = {
2153+
type: 'object',
2154+
properties: {
2155+
field: field.property
2156+
}
2157+
};
2158+
scope.form = [field.form];
2159+
2160+
var tmpl = angular.element('<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model"></form>');
2161+
$compile(tmpl)(scope);
2162+
$rootScope.$apply();
2163+
var ngModelCtrl = tmpl.children().eq(0).children().eq(0).scope().ngModel;
2164+
ngModelCtrl.$valid = true;
2165+
ngModelCtrl.$pristine = false;
2166+
$rootScope.$apply();
2167+
tmpl.children().eq(0).children().eq(0).hasClass('has-success').should.be.true;
2168+
scope.form[0].disableSuccessState = true;
2169+
$rootScope.$apply();
2170+
tmpl.children().eq(0).children().eq(0).hasClass('has-success').should.be.false;
2171+
});
2172+
});
2173+
2174+
it('should not add "has-error" class to radios-inline field if invalid value is entered, but disableErrorState is set on form', function () {
2175+
2176+
var field = {
2177+
name: 'radios',
2178+
property: {
2179+
type: 'boolean',
2180+
},
2181+
form: {
2182+
key: ["field"],
2183+
type: "radios",
2184+
titleMap: [
2185+
{
2186+
"value": false,
2187+
"name": "No way"
2188+
},
2189+
{
2190+
"value": true,
2191+
"name": "OK"
2192+
}
2193+
]
2194+
}
2195+
};
2196+
2197+
inject(function($compile, $rootScope){
2198+
var scope = $rootScope.$new();
2199+
scope.model = {
2200+
field: field.errorValue
2201+
}
2202+
scope.schema = {
2203+
type: 'object',
2204+
properties: {
2205+
field: field.property
2206+
}
2207+
};
2208+
scope.form = [field.form];
2209+
2210+
var tmpl = angular.element('<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model"></form>');
2211+
$compile(tmpl)(scope);
2212+
$rootScope.$apply();
2213+
var ngModelCtrl = tmpl.children().eq(0).children().eq(0).scope().ngModel;
2214+
ngModelCtrl.$invalid = true;
2215+
ngModelCtrl.$pristine = false;
2216+
$rootScope.$apply();
2217+
tmpl.children().eq(0).children().eq(0).hasClass('has-error').should.be.true;
2218+
scope.form[0].disableErrorState = true;
2219+
$rootScope.$apply();
2220+
tmpl.children().eq(0).children().eq(0).hasClass('has-error').should.be.false;
2221+
});
2222+
});
21462223

21472224

21482225

0 commit comments

Comments
 (0)