Skip to content

Commit 576a726

Browse files
committed
refactoring
1 parent 027abc1 commit 576a726

7 files changed

Lines changed: 58 additions & 60 deletions

File tree

pact/pact-node-messages/pact/publish.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ let publisher = require('@pact-foundation/pact-node');
22
let path = require('path');
33

44
let opts = {
5-
providerBaseUrl: 'http://localhost:8080',
65
pactFilesOrDirs: [path.resolve(process.cwd(), 'pacts')],
76
pactBroker: 'https://adesso.pact.dius.com.au/',
87
pactBrokerUsername: process.env.PACT_USERNAME,
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class HeroCreatedEvent {
2+
3+
constructor(name, superpower, universe, id) {
4+
this.id = id;
5+
this.name = name;
6+
this.superpower = superpower;
7+
this.universe = universe;
8+
}
9+
10+
static validateUniverse(event) {
11+
if (typeof event.universe !== 'string') {
12+
throw new Error(`Hero universe must be a string! Invalid value: ${event.universe}`)
13+
}
14+
}
15+
16+
static validateSuperpower(event) {
17+
if (typeof event.superpower !== 'string') {
18+
throw new Error(`Hero superpower must be a string! Invalid value: ${event.superpower}`)
19+
}
20+
}
21+
22+
static validateName(event) {
23+
if (typeof event.name !== 'string') {
24+
throw new Error(`Hero name must be a string! Invalid value: ${event.name}`);
25+
}
26+
}
27+
28+
static validateId(event) {
29+
if (typeof event.id !== 'number') {
30+
throw new Error(`Hero id must be a number! Invalid value: ${event.id}`)
31+
}
32+
}
33+
}
34+
35+
module.exports = HeroCreatedEvent;

pact/pact-node-messages/src/common/hero-created-message.js

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
const HeroCreatedMessage = require('../common/hero-created-message');
1+
const HeroCreatedEvent = require('../common/hero-created-event');
22

3-
function handleHeroCreatedEvent(message) {
3+
exports.HeroEventHandler = {
4+
handleHeroCreatedEvent: (message) => {
45

5-
HeroCreatedMessage.validateId(message);
6-
HeroCreatedMessage.validateName(message);
7-
HeroCreatedMessage.validateSuperpower(message);
8-
HeroCreatedMessage.validateUniverse(message);
6+
HeroCreatedEvent.validateId(message);
7+
HeroCreatedEvent.validateName(message);
8+
HeroCreatedEvent.validateSuperpower(message);
9+
HeroCreatedEvent.validateUniverse(message);
910

10-
// pass message into business logic
11-
// note that the business logic should be mocked away for the contract test
11+
// pass message into business logic
12+
// note that the business logic should be mocked away for the contract test
1213

13-
}
14-
15-
module.exports = handleHeroCreatedEvent;
14+
}
15+
};

pact/pact-node-messages/src/consumer/hero-event-handler.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const {MessageConsumerPact, Matchers, synchronousBodyHandler} = require('@pact-foundation/pact');
2-
const handleHeroCreatedEvent = require('./hero-event-handler');
2+
const {HeroEventHandler} = require('./hero-event-handler');
33
const path = require('path');
44

55
describe("message consumer", () => {
@@ -26,7 +26,7 @@ describe("message consumer", () => {
2626
.withMetadata({
2727
"content-type": "application/json",
2828
})
29-
.verify(synchronousBodyHandler(handleHeroCreatedEvent))
29+
.verify(synchronousBodyHandler(HeroEventHandler.handleHeroCreatedEvent))
3030
.then(() => done(), (error) => done(error));
3131
}).timeout(5000);
3232

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
const HeroCreatedMessage = require('../common/hero-created-message');
1+
const HeroCreatedEvent = require('../common/hero-created-event');
22

3-
function produceHeroCreatedEvent() {
4-
return new Promise((resolve, reject) => {
5-
resolve(new HeroCreatedMessage("Superman", "Flying", "DC", 42));
6-
});
7-
}
8-
9-
module.exports = produceHeroCreatedEvent;
3+
exports.CreateHeroEventProducer = {
4+
produceHeroCreatedEvent: () => {
5+
return new Promise((resolve, reject) => {
6+
resolve(new HeroCreatedEvent("Superman", "Flying", "DC", 42));
7+
});
8+
}
9+
};

pact/pact-node-messages/src/provider/hero-event-producer.spec.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
const {MessageProviderPact} = require('@pact-foundation/pact');
2-
const produceHeroCreatedEvent = require('./hero-event-producer');
2+
const {CreateHeroEventProducer} = require('./hero-event-producer');
33
const path = require('path');
44

55
describe("message producer", () => {
66

77
const messagePact = new MessageProviderPact({
88
messageProviders: {
9-
"a hero created message": () => produceHeroCreatedEvent(),
9+
"a hero created message": () => CreateHeroEventProducer.produceHeroCreatedEvent(),
1010
},
1111
log: path.resolve(process.cwd(), "logs", "pact.log"),
1212
logLevel: "info",
@@ -24,7 +24,6 @@ describe("message producer", () => {
2424
tags: ['latest']
2525
});
2626

27-
2827
describe("'hero created' message producer", () => {
2928

3029
it("should create a valid hero created message", (done) => {

0 commit comments

Comments
 (0)