| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 | 
							- Tinytest.add("AccountsTemplates - addField/removeField", function(test) {
 
-     // Calls after AccountsTemplates.init()
 
-     AccountsTemplates._initialized = true;
 
-     test.throws(function() {
 
-         AccountsTemplates.addField("");
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message === "AccountsTemplates.addField should strictly be called before AccountsTemplates.init!")
 
-             return true;
 
-     });
 
-     test.throws(function() {
 
-         AccountsTemplates.removeField("");
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message === "AccountsTemplates.removeField should strictly be called before AccountsTemplates.init!")
 
-             return true;
 
-     });
 
-     AccountsTemplates._initialized = false;
 
-     // Trying to remove a non-existing field
 
-     test.throws(function() {
 
-         AccountsTemplates.removeField("foo");
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "A field called foo does not exist!")
 
-             return true;
 
-     });
 
-     // Trying to remove an existing field
 
-     var email = AccountsTemplates.removeField("email");
 
-     test.isUndefined(AccountsTemplates.getField("email"));
 
-     // ...and puts it back in for tests re-run
 
-     AccountsTemplates.addField(email);
 
-     // Trying to add an already existing field
 
-     test.throws(function() {
 
-         var pwd = AccountsTemplates.getField("password");
 
-         AccountsTemplates.addField(pwd);
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "A field called password already exists!")
 
-             return true;
 
-     });
 
-     var login = {
 
-         _id: "login",
 
-         displayName: "Email",
 
-         type: "email"
 
-     };
 
-     // Successful add
 
-     AccountsTemplates.addField(login);
 
-     // ...and removes it for tests re-run
 
-     AccountsTemplates.removeField("login");
 
-     // Invalid field.type
 
-     test.throws(function() {
 
-         AccountsTemplates.addField({
 
-             _id: "foo",
 
-             displayName: "Foo",
 
-             type: "bar"
 
-         });
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "field.type is not valid!")
 
-             return true;
 
-     });
 
-     // Invalid minLength
 
-     test.throws(function() {
 
-         AccountsTemplates.addField({
 
-             _id: "first-name",
 
-             displayName: "First Name",
 
-             type: "text",
 
-             minLength: 0
 
-         });
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "field.minLength should be greater than zero!")
 
-             return true;
 
-     });
 
-     // Invalid maxLength
 
-     test.throws(function() {
 
-         AccountsTemplates.addField({
 
-             _id: "first-name",
 
-             displayName: "First Name",
 
-             type: "text",
 
-             maxLength: 0
 
-         });
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "field.maxLength should be greater than zero!")
 
-             return true;
 
-     });
 
-     // maxLength < minLength
 
-     test.throws(function() {
 
-         AccountsTemplates.addField({
 
-             _id: "first-name",
 
-             displayName: "First Name",
 
-             type: "text",
 
-             minLength: 2,
 
-             maxLength: 1
 
-         });
 
-     }, function(err) {
 
-         if (err instanceof Error && err.message == "field.maxLength should be greater than field.maxLength!")
 
-             return true;
 
-     });
 
-     // Successful add
 
-     var first_name = {
 
-         _id: "first_name",
 
-         displayName: "First Name",
 
-         type: "text",
 
-         minLength: 2,
 
-         maxLength: 50,
 
-         required: true
 
-     };
 
-     AccountsTemplates.addField(first_name);
 
-     // Now removes it to be consistent with tests re-run
 
-     AccountsTemplates.removeField("first_name");
 
- });
 
- Tinytest.add("AccountsTemplates - addFields", function(test) {
 
-     // Fake uninitialized state...
 
-     AccountsTemplates._initialized = false;
 
-     if (Meteor.isClient) {
 
-         // addFields does not exist client-side
 
-         test.throws(function() {
 
-             AccountsTemplates.addFields();
 
-         });
 
-     } else {
 
-         // Not an array of objects
 
-         test.throws(function() {
 
-             AccountsTemplates.addFields("");
 
-         }, function(err) {
 
-             if (err instanceof Error && err.message === "field argument should be an array of valid field objects!")
 
-                 return true;
 
-         });
 
-         test.throws(function() {
 
-             AccountsTemplates.addFields(100);
 
-         }, function(err) {
 
-             if (err instanceof Error && err.message === "field argument should be an array of valid field objects!")
 
-                 return true;
 
-         });
 
-         // Empty array
 
-         test.throws(function() {
 
-             AccountsTemplates.addFields([]);
 
-         }, function(err) {
 
-             if (err instanceof Error && err.message === "field argument should be an array of valid field objects!")
 
-                 return true;
 
-         });
 
-         // Successful add
 
-         var first_name = {
 
-             _id: "first_name",
 
-             displayName: "First Name",
 
-             type: "text",
 
-             minLength: 2,
 
-             maxLength: 50,
 
-             required: true
 
-         };
 
-         var last_name = {
 
-             _id: "last_name",
 
-             displayName: "Last Name",
 
-             type: "text",
 
-             minLength: 2,
 
-             maxLength: 100,
 
-             required: false
 
-         };
 
-         AccountsTemplates.addFields([first_name, last_name]);
 
-         // Now removes ot to be consistend with tests re-run
 
-         AccountsTemplates.removeField("first_name");
 
-         AccountsTemplates.removeField("last_name");
 
-     }
 
-     // Restores initialized state...
 
-     AccountsTemplates._initialized = true;
 
- });
 
- Tinytest.add("AccountsTemplates - setState/getState", function(test) {
 
-     if (Meteor.isServer) {
 
-         // getState does not exist server-side
 
-         test.throws(function() {
 
-             AccountsTemplates.getState();
 
-         });
 
-         // setState does not exist server-side
 
-         test.throws(function() {
 
-             AccountsTemplates.setState();
 
-         });
 
-     } else {
 
-         _.each(AccountsTemplates.STATES, function(state){
 
-             AccountsTemplates.setState(state);
 
-             test.equal(AccountsTemplates.getState(), state);
 
-         });
 
-         // Setting an invalid state should throw a Meteor.Error
 
-         test.throws(function() {
 
-             AccountsTemplates.setState("foo");
 
-         }, function(err) {
 
-             if (err instanceof Meteor.Error && err.details == "accounts-templates-core package got an invalid state value!")
 
-                 return true;
 
-         });
 
-     }
 
- });
 
- // -------------------------------------
 
- // TODO: complite the following tests...
 
- // -------------------------------------
 
- Tinytest.add("AccountsTemplates - configure", function(test) {
 
-     if (Meteor.isClient) {
 
-         // configure does not exist client-side
 
-         test.throws(function() {
 
-             AccountsTemplates.configure({});
 
-         });
 
-     } else {
 
-         // TODO: write actual tests...
 
-     }
 
- });
 
 
  |