UNPKG

efate

Version:

javascript test fixture generator. Autofixturejs 2.0

52 lines (51 loc) 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const field_1 = __importDefault(require("./field")); const fixture_factory_1 = require("./fixture-factory"); const customEmailExtension = { emailWithDomain: (fieldName, domainName) => (increment) => new field_1.default(fieldName, `email${increment}@${domainName}`), }; const ssnExtension = { asSSN: (fieldName, [startValue]) => { return (increment) => { return new field_1.default(fieldName, `123-45-${1000 * startValue + increment}`); }; }, }; describe('when extending with new field generators', () => { it('should provide the extended build as an option when creating the fixture', () => { const defineFixture = (0, fixture_factory_1.defineFixtureFactory)(ssnExtension); const userFixture = defineFixture((t) => { t.ssn.asSSN(2); t.name.asString(); t.email.asString(); }); const user = userFixture.create(); (0, chai_1.expect)(user.ssn).to.eql('123-45-2001'); (0, chai_1.expect)(user.name).to.eql('name1'); }); it('should allow extension to be optional', () => { const defineFixture = (0, fixture_factory_1.defineFixtureFactory)(); const userFixture = defineFixture((t) => { t.name.asString(); t.ssn.asString(); t.email.asString(); }); const user = userFixture.create(); (0, chai_1.expect)(user.name).eql('name1'); (0, chai_1.expect)(user.ssn).eql('ssn1'); }); it('should use all extenstions passed to it', () => { const defineFixture = (0, fixture_factory_1.defineFixtureFactory)(ssnExtension, customEmailExtension); const userFixture = defineFixture((t) => { t.ssn.asSSN(2); t.email.emailWithDomain('example.com'); }); const user = userFixture.create(); (0, chai_1.expect)(user.email).to.eql('email1@example.com'); }); });