1414 * limitations under the License.
1515 */
1616import { test , expect } from '@playwright/test' ;
17- import { createProvider , setupApiProxy } from './pact-proxy' ;
17+ import { setupApiProxy } from './pact-proxy' ;
18+ import { PactV4 } from '@pact-foundation/pact' ;
19+ import path from 'path' ;
1820
1921test . describe ( 'Neuer Kunde' , ( ) => {
2022 test ( 'zeigt Fehler bei leerem Namen' , async ( { page } ) => {
2123 // Given
2224 await page . goto ( '/customers/new' ) ;
2325
2426 // When
25- await page . getByLabel ( 'Name *' ) . fill ( 'Max ' ) ;
27+ await page . getByLabel ( 'Name *' ) . fill ( 'Sherlock ' ) ;
2628 await page . getByLabel ( 'Name *' ) . fill ( '' ) ;
2729
2830 // Then
2931 await expect ( page . locator ( '.field-error' ) ) . toContainText ( 'Name ist erforderlich' ) ;
3032 } ) ;
3133
3234 test ( 'erstellt Kunden erfolgreich und navigiert zur Liste' , async ( { page } ) => {
33- const provider = createProvider ( ) ;
35+ const provider = new PactV4 ( {
36+ consumer : 'create-customer' ,
37+ provider : 'customer-service' ,
38+ dir : path . resolve ( process . cwd ( ) , '../pacts' ) ,
39+ logLevel : 'warn' ,
40+ } ) ;
3441
3542 provider
3643 . addInteraction ( )
3744 . uponReceiving ( 'a request to create a customer' )
3845 . withRequest ( 'POST' , '/customers/' , ( builder ) => {
3946 builder
4047 . headers ( { 'Content-Type' : 'application/json' } )
41- . jsonBody ( { name : 'Max Mustermann ' } ) ;
48+ . jsonBody ( { name : 'Sherlock Holmes ' } ) ;
4249 } )
4350 . willRespondWith ( 201 ) ;
4451
@@ -51,17 +58,18 @@ test.describe('Neuer Kunde', () => {
5158 { number : '007' , name : 'James Bond' } ,
5259 { number : '0815' , name : 'Max Mustermann' } ,
5360 { number : '0816' , name : 'Erika Mustermann' } ,
61+ { number : '1' , name : 'Sherlock Holmes' } ,
5462 ] ) ;
5563 } )
5664 . executeTest ( async ( mockServer ) => {
5765 await setupApiProxy ( page , mockServer . url ) ;
5866 await page . goto ( '/customers/new' ) ;
5967
6068 // When
61- await page . getByLabel ( 'Name *' ) . fill ( 'Max Mustermann ' ) ;
69+ await page . getByLabel ( 'Name *' ) . fill ( 'Sherlock Holmes ' ) ;
6270 await page . getByRole ( 'button' , { name : 'Kunde erstellen' } ) . click ( ) ;
6371
64- await expect ( page . getByRole ( 'cell' , { name : 'Max Mustermann ' } ) ) . toBeVisible ( ) ;
72+ await expect ( page . getByRole ( 'cell' , { name : 'Sherlock Holmes ' } ) ) . toBeVisible ( ) ;
6573 } ) ;
6674 } ) ;
6775} ) ;
0 commit comments