test('We can create a review', async t => {
t.plan(9);
let tags = ['create_test_revision', 'test_rev'];
let { title, text, html, url, starRating, createdOn, createdBy, originalLanguage } =
reviewData.next().value;
let review = await dbFixture.models.Review.create({
title,
text,
html,
url,
starRating,
originalLanguage,
createdOn,
createdBy
}, { tags });
t.true(isUUID.v4(review.id), 'Review has valid v4 UUID');
t.true(isUUID.v4(review.thingID), 'Implicitly created Thing has valid v4 UUID');
t.is(review._revUser, user.id, 'Review revision attributed to user');
t.true(review._revDate instanceof Date && !isNaN(review._revDate), 'Review revision has valid date');
t.is(review.createdOn.valueOf(), createdOn.valueOf(), 'Review creation date is expected value');
t.true(isUUID.v4(review._revID), 'Review revision has valid v4 UUID');
t.deepEqual(review._revTags, tags, 'Review revision has expected tags');
let thing = await dbFixture.models.Thing.get(review.thingID);
t.is(review.thingID, thing.id, 'Thing record can be located.');
t.deepEqual(thing.urls, [url], 'Thing URL is stored in an array.');
});