[Groonga-commit] groonga/gcs [master] Update tests to validate on creation

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Nov 21 16:50:00 JST 2012


YUKI Hiroshi	2012-11-21 16:50:00 +0900 (Wed, 21 Nov 2012)

  New Revision: 03d7d909ba08c8733a8d1200a2e7cb6dd83d8dbb
  https://github.com/groonga/gcs/commit/03d7d909ba08c8733a8d1200a2e7cb6dd83d8dbb

  Log:
    Update tests to validate on creation

  Modified files:
    test/database-domain.test.js
    test/database-index-field.test.js

  Modified: test/database-domain.test.js (+20 -17)
===================================================================
--- test/database-domain.test.js    2012-11-21 15:47:43 +0900 (0c03e57)
+++ test/database-domain.test.js    2012-11-21 16:50:00 +0900 (3079163)
@@ -7,7 +7,7 @@ var Domain = require('../lib/database/domain').Domain;
 suite('database', function() {
   suite('Domain', function() {
     test('initial status', function() {
-      var domain = new Domain('newdomain');
+      var domain = new Domain('newdomain').createSync();
       assert.deepEqual({
         searchableDocumentsCount: domain.searchableDocumentsCount,
         requiresIndexDocuments:   domain.requiresIndexDocuments,
@@ -26,6 +26,7 @@ suite('database', function() {
     test('lower case', function() {
       var domain = new Domain('valid');
       domain.id = Domain.DEFAULT_ID;
+      domain.createSync();
       assert.equal(domain.tableName,
                    'valid_' + Domain.DEFAULT_ID);
     });
@@ -33,13 +34,14 @@ suite('database', function() {
     test('lower case and number', function() {
       var domain = new Domain('valid123');
       domain.id = Domain.DEFAULT_ID;
+      domain.createSync();
       assert.equal(domain.tableName,
                    'valid123_' + Domain.DEFAULT_ID);
     });
 
     test('without name', function() {
       assert.throw(function() {
-        var domain = new Domain('');
+        var domain = new Domain('').createSync();
       }, '2 validation errors detected: ' +
            'Value \'\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -51,7 +53,7 @@ suite('database', function() {
 
     test('too short (1 character)', function() {
       assert.throw(function() {
-        var domain = new Domain('v');
+        var domain = new Domain('v').createSync();
       }, '2 validation errors detected: ' +
            'Value \'v\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -63,7 +65,7 @@ suite('database', function() {
 
     test('too short (2 characters)', function() {
       assert.throw(function() {
-        var domain = new Domain('va');
+        var domain = new Domain('va').createSync();
       }, '1 validation error detected: ' +
            'Value \'va\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must have length greater than or equal to ' +
@@ -73,7 +75,7 @@ suite('database', function() {
     test('too long', function() {
       var name = 'abcdefghijklmnopqrstuvwxyz0123456789';
       assert.throw(function() {
-        var domain = new Domain(name);
+        var domain = new Domain(name).createSync();
       }, '1 validation error detected: ' +
            'Value \'' + name + '\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must have length less than or equal to ' +
@@ -82,7 +84,7 @@ suite('database', function() {
 
     test('hyphen', function() {
       assert.throw(function() {
-        var domain = new Domain('domain-name');
+        var domain = new Domain('domain-name').createSync();
       }, '1 validation error detected: ' +
            'Value \'domain_name\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member cannot include these characters: \'-\'');
@@ -90,7 +92,7 @@ suite('database', function() {
 
     test('underscore', function() {
       assert.throw(function() {
-        var domain = new Domain('domain_name');
+        var domain = new Domain('domain_name').createSync();
       }, '1 validation error detected: ' +
            'Value \'domain_name\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -99,7 +101,7 @@ suite('database', function() {
 
     test('upper case', function() {
       assert.throw(function() {
-        var domain = new Domain('DomainName');
+        var domain = new Domain('DomainName').createSync();
       }, '1 validation error detected: ' +
            'Value \'%NAME_FIELD%\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -109,6 +111,7 @@ suite('database', function() {
     test('termsTableName', function() {
       var domain = new Domain('valid123');
       domain.id = Domain.DEFAULT_ID;
+      domain.createSync();
       assert.equal(domain.termsTableName,
                    'valid123_' + Domain.DEFAULT_ID + '_index_BigramTerms');
     });
@@ -117,7 +120,7 @@ suite('database', function() {
       test('not supported', function() {
         assert.throw(function() {
           var request = { query: { DomainName: 'test0123' } };
-          var domain = new Domain(request);
+          var domain = new Domain(request).createSync();
         }, /no domain name/);
       });
     });
@@ -184,7 +187,7 @@ suite('database', function() {
       test('from host, valid', function() {
         var host = 'doc-test0123-id0123.example.com';
         var request = { headers: { host: host } };
-        var domain = new Domain(request);
+        var domain = new Domain(request).createSync();
         assert.deepEqual({ name: domain.name, id: domain.id },
                          { name: 'test0123', id: 'id0123' });
       });
@@ -193,7 +196,7 @@ suite('database', function() {
         assert.throw(function() {
           var host = 'doc-domain_name-id0123.example.com';
           var request = { headers: { host: host } };
-          var domain = new Domain(request);
+          var domain = new Domain(request).createSync();
         }, '1 validation error detected: ' +
              'Value \'domain_name\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
                'Member must satisfy regular expression pattern: ' +
@@ -204,7 +207,7 @@ suite('database', function() {
         var host = 'example.com';
         var request = { headers: { host: host },
                         url: '/gcs/test0123-id0123' };
-        var domain = new Domain(request);
+        var domain = new Domain(request).createSync();
         assert.deepEqual({ name: domain.name, id: domain.id },
                          { name: 'test0123', id: 'id0123' });
       });
@@ -214,7 +217,7 @@ suite('database', function() {
           var host = 'example.com';
         var request = { headers: { host: host },
                         url: '/gcs/test_0123-id0123' };
-          var domain = new Domain(request);
+          var domain = new Domain(request).createSync();
         }, '1 validation error detected: ' +
              'Value \'domain_name\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
                'Member must satisfy regular expression pattern: ' +
@@ -225,7 +228,7 @@ suite('database', function() {
         var host = 'doc-test0123-id0123.example.com';
         var request = { headers: { host: host },
                         url: '/gcs/test4567-id4567' };
-        var domain = new Domain(request);
+        var domain = new Domain(request).createSync();
         assert.deepEqual({ name: domain.name, id: domain.id },
                          { name: 'test0123', id: 'id0123' });
       });
@@ -235,7 +238,7 @@ suite('database', function() {
         var request = { headers: { host: host },
                         url: '/gcs/test4567-id4567',
                         query: { DomainName: 'test890' } };
-        var domain = new Domain(request);
+        var domain = new Domain(request).createSync();
         assert.equal(domain.name, 'test0123');
       });
     });
@@ -243,7 +246,7 @@ suite('database', function() {
     suite('document endpoint', function() {
       var domain;
       setup(function() {
-        domain = new Domain('valid').setId(Domain.DEFAULT_ID);
+        domain = new Domain('valid').setId(Domain.DEFAULT_ID).createSync();
       });
 
       test('regular domain, with port', function() {
@@ -285,7 +288,7 @@ suite('database', function() {
     suite('getSearchEndpoint', function() {
       var domain;
       setup(function() {
-        domain = new Domain('valid').setId(Domain.DEFAULT_ID);
+        domain = new Domain('valid').setId(Domain.DEFAULT_ID).createSync();
       });
 
       test('regular domain, with port', function() {

  Modified: test/database-index-field.test.js (+34 -22)
===================================================================
--- test/database-index-field.test.js    2012-11-21 15:47:43 +0900 (49b979b)
+++ test/database-index-field.test.js    2012-11-21 16:50:00 +0900 (a118039)
@@ -27,23 +27,23 @@ suite('database', function() {
     });
 
     test('lower case', function() {
-      var field = new IndexField('valid', domain);
+      var field = new IndexField('valid', domain).createSync();
       assert.equal(field.columnName, 'valid');
     });
 
     test('lower case and number', function() {
-      var field = new IndexField('valid123', domain);
+      var field = new IndexField('valid123', domain).createSync();
       assert.equal(field.columnName, 'valid123');
     });
 
     test('lower case, number amd underscore', function() {
-      var field = new IndexField('valid_123', domain);
+      var field = new IndexField('valid_123', domain).createSync();
       assert.equal(field.columnName, 'valid_123');
     });
 
     test('too short (1 character)', function() {
       assert.throw(function() {
-        var field = new IndexField('v', domain);
+        var field = new IndexField('v', domain).createSync();
       }, '2 validation errors detected: ' +
            'Value \'v\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -55,7 +55,7 @@ suite('database', function() {
 
     test('too short (2 characters)', function() {
       assert.throw(function() {
-        var field = new IndexField('va', domain);
+        var field = new IndexField('va', domain).createSync();
       }, '1 validation error detected: ' +
            'Value \'va\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must have length greater than or equal to ' +
@@ -65,7 +65,7 @@ suite('database', function() {
     test('too long', function() {
       var name = 'abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789';
       assert.throw(function() {
-        var field = new IndexField(name, domain);
+        var field = new IndexField(name, domain).createSync();
       }, '1 validation error detected: ' +
            'Value \'' + name + '\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must have length less than or equal to ' +
@@ -74,20 +74,20 @@ suite('database', function() {
 
     test('hyphen', function() {
       assert.throw(function() {
-        var field = new IndexField('field-name', domain);
+        var field = new IndexField('field-name', domain).createSync();
       }, '1 validation error detected: ' +
            'Value \'field-name\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member cannot include these characters: \'-\'');
     });
 
     test('underscore', function() {
-      var field = new IndexField('field_name', domain);
+      var field = new IndexField('field_name', domain).createSync();
       assert.equal(field.columnName, 'field_name');
     });
 
     test('upper case', function() {
       assert.throw(function() {
-        var field = new IndexField('FieldName', domain);
+        var field = new IndexField('FieldName', domain).createSync();
       }, '1 validation error detected: ' +
            'Value \'FieldName\' at \'%NAME_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy regular expression pattern: ' +
@@ -98,6 +98,7 @@ suite('database', function() {
       var field = new IndexField('foo', domain);
       assert.throw(function() {
         field.type = null;
+        field.createSync();
       }, '1 validation error detected: ' +
            'Value null at \'%TYPE_FIELD%\' failed to satisfy constraint: ' +
              'Member must not be null');
@@ -107,32 +108,33 @@ suite('database', function() {
       var field = new IndexField('foo', domain);
       assert.throw(function() {
         field.type = 'unknown';
+        field.createSync();
       }, '1 validation error detected: ' +
            'Value \'unknown\' at \'%TYPE_FIELD%\' failed to satisfy constraint: ' +
              'Member must satisfy enum value set: [text, literal, uint]');
     });
 
     test('indexTableName', function() {
-      var field = new IndexField('valid_123', domain);
+      var field = new IndexField('valid_123', domain).createSync();
       assert.equal(field.indexTableName,
                    'testdomain_' + Domain.DEFAULT_ID + '_' +
                      Domain.INDEX_SUFFIX + '_valid_123');
     });
 
     test('fieldTypeToColumnType (text)', function() {
-      var field = new IndexField('valid_123', domain);
+      var field = new IndexField('valid_123', domain).createSync();
       assert.equal(field.fieldTypeToColumnType('text'),
                    'ShortText');
     });
 
     test('fieldTypeToColumnType (uint)', function() {
-      var field = new IndexField('valid_123', domain);
+      var field = new IndexField('valid_123', domain).createSync();
       assert.equal(field.fieldTypeToColumnType('uint'),
                    'UInt32');
     });
 
     test('fieldTypeToColumnType (literal)', function() {
-      var field = new IndexField('valid_123', domain);
+      var field = new IndexField('valid_123', domain).createSync();
       assert.equal(field.fieldTypeToColumnType('literal'),
                    'testdomain_' + Domain.DEFAULT_ID + '_' +
                      Domain.INDEX_SUFFIX + '_valid_123');
@@ -141,6 +143,7 @@ suite('database', function() {
     test('initial status (text)', function() {
       var field = new IndexField('text', domain);
       field.type = 'text';
+      field.createSync();
       assert.deepEqual({
         facetEnabled:  field.facetEnabled,
         resultEnabled: field.resultEnabled,
@@ -159,6 +162,7 @@ suite('database', function() {
     test('initial status (uint)', function() {
       var field = new IndexField('uint', domain);
       field.type = 'uint';
+      field.createSync();
       assert.deepEqual({
         facetEnabled:  field.facetEnabled,
         resultEnabled: field.resultEnabled,
@@ -177,6 +181,7 @@ suite('database', function() {
     test('initial status (literal)', function() {
       var field = new IndexField('literal', domain);
       field.type = 'literal';
+      field.createSync();
       assert.deepEqual({
         facetEnabled:  field.facetEnabled,
         resultEnabled: field.resultEnabled,
@@ -193,9 +198,9 @@ suite('database', function() {
     });
 
     test('summary', function() {
-      var textField =    new IndexField('name', domain).setType('text');
-      var uintField =    new IndexField('age', domain).setType('uint');
-      var literalField = new IndexField('product', domain).setType('literal');
+      var textField =    new IndexField('name', domain).setType('text').createSync();
+      var uintField =    new IndexField('age', domain).setType('uint').createSync();
+      var literalField = new IndexField('product', domain).setType('literal').createSync();
       assert.deepEqual({ text:    textField.summary,
                          uint:    uintField.summary,
                          literal: literalField.summary },
@@ -223,27 +228,27 @@ suite('database', function() {
       });
 
       test('exists, for existing field', function() {
-        var field = new IndexField('name', domain);
+        var field = new IndexField('name', domain).createSync();
         assert.isTrue(field.exists());
       });
 
       test('exists, for non-existing field', function() {
-        var field = new IndexField('unknown', domain);
+        var field = new IndexField('unknown', domain).createSync();
         assert.isFalse(field.exists());
       });
 
       test('type detection (text)', function() {
-        var field = new IndexField('name', domain);
+        var field = new IndexField('name', domain).createSync();
         assert.equal(field.type, 'text');
       });
 
       test('type detection (uint)', function() {
-        var field = new IndexField('age', domain);
+        var field = new IndexField('age', domain).createSync();
         assert.equal(field.type, 'uint');
       });
 
       test('type detection (literal)', function() {
-        var field = new IndexField('product', domain);
+        var field = new IndexField('product', domain).createSync();
         assert.equal(field.type, 'literal');
       });
     });
@@ -277,10 +282,11 @@ suite('database', function() {
       });
 
       test('create text field with conflicting options', function() {
-        var field = new IndexField('name', domain).setType('text');
+        var field = new IndexField('name', domain).setType('text').createSync;
         field.facetEnabled = true;
         assert.throw(function() {
           field.resultEnabled = true;
+          field.saveOptionsSync();
         }, ' Error defining field: name. '+
              'An IndexField may not be both FacetEnabled and ResultEnabled');
       });
@@ -303,6 +309,7 @@ suite('database', function() {
         field.searchEnabled = true;
         assert.throw(function() {
           field.searchEnabled = false;
+          field.saveOptionsSync();
         }, 'searchable option cannot be configured for the type text');
       });
 
@@ -312,14 +319,17 @@ suite('database', function() {
         field.searchEnabled = true;
         assert.throw(function() {
           field.searchEnabled = false;
+          field.saveOptionsSync();
         }, 'searchable option cannot be configured for the type uint');
         field.facetEnabled = false;
         assert.throw(function() {
           field.facetEnabled = true;
+          field.saveOptionsSync();
         }, 'facet option cannot be configured for the type uint');
         field.resultEnabled = true;
         assert.throw(function() {
           field.resultEnabled = false;
+          field.saveOptionsSync();
         }, 'returnable option cannot be configured for the type uint');
       });
 
@@ -341,6 +351,7 @@ suite('database', function() {
         field.facetEnabled = true;
         assert.throw(function() {
           field.resultEnabled = true;
+          field.saveOptionsSync();
         }, ' Error defining field: product. '+
              'An IndexField may not be both FacetEnabled and ResultEnabled');
       });
@@ -654,6 +665,7 @@ suite('database', function() {
         assert.equal(product.type, 'text');
         product.type = 'literal';
         assert.equal(product.type, 'literal');
+        product.createSync();
       });
 
       test('for existing field (text to literal)', function() {
-------------- next part --------------
HTML����������������������������...
Télécharger 



More information about the Groonga-commit mailing list
Back to archive index