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