Navigation Menu

Skip to content

Commit

Permalink
Add tests for deleting of existing index fields
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Aug 6, 2012
1 parent db7b052 commit e9bb5b0
Showing 1 changed file with 34 additions and 40 deletions.
74 changes: 34 additions & 40 deletions test/cs-commands.test.js
Expand Up @@ -159,90 +159,84 @@ suite('cs-configure-fields', function() {
setup(commonSetup);
teardown(commonTeardown);

test('create text field', function(done) {
function testCreateField(done, name, type) {
utils
.run('cs-create-domain',
'--domain-name', 'companies',
'--database-path', temporaryDatabase.path)
.run('cs-configure-fields',
'--domain-name', 'companies',
'--name', 'name',
'--type', 'text',
'--name', name,
'--type', type,
'--database-path', temporaryDatabase.path)
.next(function(result) {
assert.equal(result.code, 0);
assert.equal(result.output.stdout,
'Updated 1 Index Field:\n' +
'name RequiresIndexDocuments text ()\n');
name + ' RequiresIndexDocuments ' + type + ' ()\n');

context.reopen();
var domain = new Domain('companies', context);
var field = domain.getIndexField('name');
var field = domain.getIndexField(name);
assert.deepEqual({ type: field.type, exists: field.exists() },
{ type: 'text', exists: true });
{ type: type, exists: true });

done();
})
.error(function(e) {
done(e);
});
});
}

test('create text field', function(done) {
testCreateField(done, 'name', 'text');
});
test('create uint field', function(done) {
testCreateField(done, 'age', 'uint');
});
test('create literal field', function(done) {
testCreateField(done, 'product', 'literal');
});

function testDeleteField(done, name, type) {
utils
.run('cs-create-domain',
'--domain-name', 'companies',
'--database-path', temporaryDatabase.path)
.run('cs-configure-fields',
'--domain-name', 'companies',
'--name', 'age',
'--type', 'uint',
'--database-path', temporaryDatabase.path)
.next(function(result) {
assert.equal(result.code, 0);
assert.equal(result.output.stdout,
'Updated 1 Index Field:\n' +
'age RequiresIndexDocuments uint ()\n');

context.reopen();
var domain = new Domain('companies', context);
var field = domain.getIndexField('age');
assert.deepEqual({ type: field.type, exists: field.exists() },
{ type: 'uint', exists: true });

done();
})
.error(function(e) {
done(e);
});
});

test('create literal field', function(done) {
utils
.run('cs-create-domain',
'--domain-name', 'companies',
'--name', name,
'--type', type,
'--database-path', temporaryDatabase.path)
.run('cs-configure-fields',
'--domain-name', 'companies',
'--name', 'product',
'--type', 'literal',
'--name', name,
'--delete',
'--database-path', temporaryDatabase.path)
.next(function(result) {
assert.equal(result.code, 0);
assert.equal(result.output.stdout,
'Updated 1 Index Field:\n' +
'product RequiresIndexDocuments literal ()\n');
'Updated 1 Index Field:\n';

context.reopen();
var domain = new Domain('companies', context);
var field = domain.getIndexField('product');
assert.deepEqual({ type: field.type, exists: field.exists() },
{ type: 'literal', exists: true });
var field = domain.getIndexField(name);
assert.isFalse(field.exists());

done();
})
.error(function(e) {
done(e);
});
}

test('delete text field', function(done) {
testDeleteField(done, 'name', 'text');
});
test('delete uint field', function(done) {
testDeleteField(done, 'age', 'uint');
});
test('delete literal field', function(done) {
testDeleteField(done, 'product', 'literal');
});
});

0 comments on commit e9bb5b0

Please sign in to comment.