2017-10-09 4 views
0

J'essaie de publier mon pacte-fichier à un courtier de pacte que j'ai mis en place. Selon le docs, cela se fait en important @pact-foundation/pact-node et en appelant publishPacts().Pacte JS: comment publier un pacte-courtier

Cependant, cette fonction n'existe pas. J'ai installé le module en utilisant npm install @pact-foundation/pact-node --save, comme le disent les docs, puis require d, mais quand je tente de publier, je reçois TypeError: pact.publishPacts is not a function. Quand je require du shell interactif nœud, je reçois ceci:

> const pact = require('@pact-foundation/pact-node') 
undefined 
> pact 
{ default: Pact { __servers: [] } } 
> 

Qu'est-ce qui se passe ici? Si je navigue dans node_modules/pact/node_modules et que j'importe le formulaire de module, j'obtiens la méthode publishPacts très bien. Mais mes cas de test réels ne peuvent pas trouver la version de qui a été installée avec pact. Seule la version que j'ai installée séparément, qui semble être cassée.

+1

Cela ressemble à un bug, pourriez-vous s'il vous plaît relever sur le référentiel pacte nœud? –

Répondre

0

Cela fonctionne pour moi avec v5.1.0:

import pact from '@pact-foundation/pact-node'; 
import * as path from 'path'; 

const opts = { 
    pactUrls: [path.resolve(__dirname, './pacts/matching_service-animal_profile_service.json')], 
    pactBroker: 'https://test.pact.dius.com.au', 
    pactBrokerUsername: 'blah', 
    pactBrokerPassword: 'blah', 
    tags: ['prod', 'test'], 
    consumerVersion: '1.0.0' 
} 
pact.publishPacts(opts) 
    .then(() => { 
    console.log('Pact contract publishing complete!') 
    }) 
    .catch(e => { 
    console.log('Pact contract publishing failed: ', e) 
    }) 
+0

il semble que ce soit un bogue dans 5.1.0. ils [corrigé] (https://github.com/pact-foundation/pact-node/releases/tag/5.1.1) la nuit dernière. – ewok