@gameroom/gameroom-kit
Version:
Node kit for the Gameroom API
129 lines (127 loc) • 3.42 kB
JavaScript
let chai = require('chai'),
should = chai.should(),
faker = require('faker'),
{ models } = require('../../'),
{ Address, Customer } = models,
addressable_id, addressable_type, object;
describe('Address', () => {
describe('setup', () => {
it('should create objects for relationships', async() => {
let result, error;
try {
result = await Customer.create({ password: 'password' });
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('object');
addressable_id = result.id;
addressable_type = 'Customer';
});
});
describe('Address.create()', () => {
it('should create an address', async () => {
let result, error;
try {
result = await Address.create({
city: faker.address.city(),
country: faker.address.country(),
name: faker.random.word(),
state: faker.address.state(),
street1: faker.address.streetAddress(),
zip: faker.address.zipCode(),
addressable_id,
addressable_type
});
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('object');
object = result;
});
});
describe('Address.get()', () => {
it('should get array of addresses', async () => {
let result, error;
try {
result = await Address.get();
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('array');
});
});
describe('Address.find()', () => {
it('should find an address', async() => {
let result, error;
try {
result = await Address.find(object, { view: 'full' });
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('object');
object = result;
});
});
describe('Address keys', () => {
it('should match api and kit keys', async () => {
Object.keys(object).should.deep.equal(Object.keys(Address.schema.attributes));
});
});
describe('Address.update()', () => {
it('should update a address', async () => {
let result, error;
try {
result = await Address.update(object);
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('object');
});
});
describe('address.save()', () => {
it('should update one addresses', async () => {
let result, error;
try {
result = await object.save();
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
result.should.be.a('object');
});
});
describe('Address.delete()', () => {
it('should delete one address', async () => {
let result, error;
try {
result = await Address.delete(object);
} catch(err) {
error = err;
};
should.not.exist(error);
should.exist(result);
});
});
describe('teardown', () => {
it('should delete the relationship object', async() => {
let result, error;
try {
result = await Customer.delete(addressable_id);
} catch(err) {
error = err;
};
should.not.exist(error);
});
});
});