Skip to content

Commit

Permalink
Clean up tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Noah Bogart committed Jul 21, 2020
1 parent f12b9b8 commit 8172cb1
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 83 deletions.
6 changes: 5 additions & 1 deletion lib/fixture.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,14 @@ export class Fixture extends Definition {
return t;
}

getParentAttributes(): Attribute[] {
return this.parentFixture().getAttributes();
}

getAttributes(): Attribute[] {
this.compile();

const attributesToKeep = this.parentFixture().getAttributes();
const attributesToKeep = this.getParentAttributes();

if (!this.attributes || this.attributes.length === 0) {
this.attributes = [
Expand Down
32 changes: 9 additions & 23 deletions test/unit/definition-proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,30 +140,16 @@ describe("DefinitionProxy", function() {
});

describe("#trait", function() {
context("when given a block function", function() {
it("calls defineTrait", function() {
const fixtureRiveter = new FixtureRiveter();
const fixture = new Fixture(fixtureRiveter, "dummy", DummyModel);
const proxy = new DefinitionProxy(fixture);
sinon.stub(fixture, "defineTrait");
const name = "email";
const block = () => 1;
proxy.trait(name, block);

expect(fixture.defineTrait).to.be.calledOnce;
});
});

context("when given no block", function() {
it("throws an error", function() {
const fixtureRiveter = new FixtureRiveter();
const fixture = new Fixture(fixtureRiveter, "dummy", DummyModel);
const proxy = new DefinitionProxy(fixture);
const name = "email";
const fn = () => proxy.trait(name);
it("calls defineTrait", function() {
const fixtureRiveter = new FixtureRiveter();
const fixture = new Fixture(fixtureRiveter, "dummy", DummyModel);
const proxy = new DefinitionProxy(fixture);
sinon.stub(fixture, "defineTrait");
const name = "email";
const block = () => 1;
proxy.trait(name, block);

expect(fn).to.throw("wrong options");
});
expect(fixture.defineTrait).to.be.calledOnce;
});
});
});
32 changes: 2 additions & 30 deletions test/unit/fixture-riveter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -265,44 +265,16 @@ describe("FixtureRiveter", function() {
});

describe("#trait", function() {
it("returns a new trait", function() {
const fr = new FixtureRiveter();
const result = fr.trait("email");

expect(result).to.be.an.instanceof(Trait);
});

it("passes both arguments through to Trait", function() {
const fr = new FixtureRiveter();
const name = "email";
const block = identity;
const result = fr.trait(name, block);
fr.trait(name, block);
const result = fr.traits[name];

expect(result.name).to.equal(name);
expect(result.block).to.equal(block);
});

it("calls registerTrait", function() {
const fr = new FixtureRiveter();
sinon.stub(fr, "registerTrait");
fr.trait("email");

expect(fr.registerTrait).to.be.called;
});
});

describe("#registerTrait", function() {
it("adds the trait for all names", function() {
const fr = new FixtureRiveter();
const name = "email";
const trait = new Trait(name, fr, identity);
sinon.stub(trait, "names").returns(["temp", name]);
fr.registerTrait(trait);

expect(Object.keys(fr.traits)).to.have.length(2);
expect(fr.traits.temp).to.equal(trait);
expect(fr.traits[name]).to.equal(trait);
});
});

describe("#getTrait", function() {
Expand Down
29 changes: 1 addition & 28 deletions test/unit/fixture.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe("Fixture", function() {
it("defines default options", function() {
const noOptions = new Fixture(fixtureRiveter, "name", DummyModel);
expect(noOptions.aliases).to.deep.equal([]);
expect(noOptions.definedTraits).to.deep.equal([]);
expect(noOptions.traits).to.deep.equal({});
});

it("accepts aliases", function() {
Expand Down Expand Up @@ -144,17 +144,6 @@ describe("Fixture", function() {
fixtureRiveter = new FixtureRiveter();
});

it("calls attributeNames", function() {
const parentFixture = new Fixture(fixtureRiveter, "parent", DummyModel);
const childFixture = new Fixture(fixtureRiveter, "child", DummyModel);
sinon.stub(childFixture, "parentFixture")
.returns(parentFixture);
sinon.spy(childFixture, "attributeNames");

childFixture.getParentAttributes();
expect(childFixture.attributeNames).to.be.calledOnce;
});

it("calls parentFixture", function() {
const parentFixture = new Fixture(fixtureRiveter, "parent", DummyModel);
const childFixture = new Fixture(fixtureRiveter, "child", DummyModel);
Expand Down Expand Up @@ -193,22 +182,6 @@ describe("Fixture", function() {
const result = childFixture.getParentAttributes();
expect(result).to.deep.equal([attr]);
});

it("filters existing attributes", function() {
const parentFixture = new Fixture(fixtureRiveter, "parent", DummyModel);
const attr = new DynamicAttribute("attr", false, () => true);
sinon.stub(parentFixture, "getAttributes")
.returns([attr]);

const childFixture = new Fixture(fixtureRiveter, "child", DummyModel);
sinon.stub(childFixture, "parentFixture")
.returns(parentFixture);
sinon.stub(childFixture, "attributeNames")
.returns(["attr"]);

const result = childFixture.getParentAttributes();
expect(result).to.deep.equal([]);
});
});

describe("#getAttributes", function() {
Expand Down
2 changes: 1 addition & 1 deletion test/unit/trait.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe("Trait", function() {
it("creates an instance with the correct initial values", function() {
const result = new Trait("trait", fixtureRiveter);
expect(result.attributes).to.deep.equal([]);
expect(result.definedTraits).to.deep.equal([]);
expect(result.traits).to.deep.equal({});
});

it("executes the given block immediately", function() {
Expand Down

0 comments on commit 8172cb1

Please sign in to comment.