Pact-jvm: Unable to discern reason for junit provider test failure

Created on 19 Jan 2017  路  5Comments  路  Source: pact-foundation/pact-jvm

pact-jvm = 3.3.1
pact-spec-version = 3.0.0
initial SO post

unable to debug as failures only happen on jenkins

Test logs:

Error Message

0 - $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing
Stacktrace

java.lang.AssertionError: 
0 - $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing
    at au.com.dius.pact.provider.junit.target.HttpTarget.getAssertionError(HttpTarget.java:224)
    at au.com.dius.pact.provider.junit.target.HttpTarget.testInteraction(HttpTarget.java:132)
    at au.com.dius.pact.provider.junit.InteractionRunner$2.evaluate(InteractionRunner.java:180)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at au.com.dius.pact.provider.junit.InteractionRunner.run(InteractionRunner.java:140)
    at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.java:102)
    at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.java:52)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Standard Output

Verifying a pact between idm-client and idm
  Given the 'zero' client exists
  a request to get all clients
Client Id:5139950a-ecc8-40e3-aa31-cf79fe1bb72a
Client Secret:secret
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - POST request start:uri=/mobius/v1/sso/oauth/token
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - Request body: grant_type=client_credentials
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - POST request end:uri=/mobius/v1/sso/oauth/token (200)
https-jsse-nio-8099-exec-10 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - GET request start:uri=/mobius/v1/idm/client
https-jsse-nio-8099-exec-10 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - GET request end:uri=/mobius/v1/idm/client (200)
Metadata-reload 18 Jan 2017 15:25:17  INFO c.c.m.i.d.p.CassandraMetadataProvider - fetching metadata for entityId zero
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - New metadata succesfully loaded for 'zero'
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - Next refresh cycle for metadata provider 'zero' will occur on '2017-01-18T18:25:17.292Z' ('2017-01-18T18:25:17.292Z' local time)
Metadata-reload 18 Jan 2017 15:25:17  INFO c.c.m.i.d.p.CassandraMetadataProvider - fetching metadata for entityId SJRfGeRvgsSKAlC
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - New metadata succesfully loaded for 'SJRfGeRvgsSKAlC'
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - Next refresh cycle for metadata provider 'SJRfGeRvgsSKAlC' will occur on '2017-01-18T18:25:17.296Z' ('2017-01-18T18:25:17.296Z' local time)
    returns a response which
      has status code 200 (OK)
      includes headers
        "Content-Type" with value "application/json; charset=UTF-8" (OK)
      has a matching body (FAILED)

Failures:

0) a request to get all clients returns a response which has a matching body
      $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing

      Diff:

      @2
          {
      -        "accessTokenValiditySeconds": 42721462,
      +        "accessTokenValiditySeconds": 2047531805,
              "allowedScopes": [

      @4
              "allowedScopes": [
      -            "JnTfAlnHKVSDzoWnUqZv"
      +            "CbQKtUHZKpbXgYM",
      +            "HWQEabGJImGSEkp",
      +            "LaIhYNueeqcDQfm",
      +            "SCxIXIFATJEIvit",
      +            "SSqGVJiwXycnHZO",
      +            "iPpENLhFTbXGpTt",
      +            "qmKXLMsEdaXdyvn",
      +            "uJuBiZBGiToWRYK",
      +            "xEtffZzKEQdXNBv",
      +            "ySWoarvfBHBAOmA"
              ],

      @7
              "autoApprove": true,
      +        "clientSecret": "$2a$10$6W5venYTPJvN56SoCVISzOAS9NRgnvkQLWI6XKUTgpHD6Q75d9BRu",
      +        "contactEmail": "jsFDnxjMmKedPsM",
      +        "contactFirstName": "CnubJIiONQshfju",
      +        "contactLastName": "dSzktEWSSSCprRV",
      +        "description": "DDnerbtCJcXJdSJ",
              "grantTypes": [

      @8
              "grantTypes": [
      -            "VfWudsTQINERQCnVKvoK"
      +            "AZyZGSnloQEkXrZ",
      +            "BNgxGvVgawObCVA",
      +            "BjCRlTHkIrknhYY",
      +            "LHMMMDnYcvuLBBr",
      +            "OIrutyPdvoSFBEK",
      +            "QvCZUUeKLSXfSwP",
      +            "WtQmSJdnWutzEFu",
      +            "tzKRkWouoUtnZYH",
      +            "vYhaZOcFlrIscRU",
      +            "wktIDvVUQJUehFR"
              ],

      @10
              ],
      -        "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
      -        "name": "FXUHHqWrZZcodhHBmeLf",
      +        "id": "9daaad0a-8a2d-4e73-a963-fa1625cec110",
      +        "name": "name",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
              "redirectUris": [

      @13
              "redirectUris": [
      -            "vWxSTjgJQvwUtwphDGcn"
      +            "JSdQvUdokPTlodl",
      +            "JpEMvpcIWescPZR",
      +            "VeqlKVXnbCPyjZK",
      +            "ZgVqKaCOgYZtlZj",
      +            "hMFJKfVwkgapsNe",
      +            "hQxZXAecosoXsif",
      +            "kFGJHlrcwnWORzL",
      +            "nQdyNhxIKLmpZHk",
      +            "oHUgeTNOYNQdkGo",
      +            "wnrIZYwfVHPoLcU"
              ],

      @15
              ],
      -        "refreshTokenValiditySeconds": 12393550,
      +        "refreshTokenValiditySeconds": 165274901,
              "secretRequired": true

      @17
              "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 1725247274,
      +        "allowedScopes": [
      +            "DniUNWUNDSoDBmh",
      +            "PCKoRyrTHZkdjjQ",
      +            "TDGLJwfbUeziRgS",
      +            "WLaCWUpQQjadDze",
      +            "bIKJzzITpzkTKKe",
      +            "kBnuzmYirIFSDHb",
      +            "kllRvIwJInmGGDo",
      +            "sAGFquVxtUfsHkv",
      +            "vwHipQUTSpvwihE",
      +            "wtOOOSLDvdPUbpe"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$JwbbZXMdlUcA1MLFuuVhIuGoNuWonOmBsS/rwU5MsehYhuYNATYlK",
      +        "contactEmail": "LwjNwwogIBxMbSj",
      +        "contactFirstName": "oZxnuPyIDpWMlif",
      +        "contactLastName": "SeJEOGhoEjVaEuk",
      +        "description": "neeqtcvQabZRfXP",
      +        "grantTypes": [
      +            "GcpIbfNNisoSNOz",
      +            "JjPlzVVjfDyupEg",
      +            "KWRiUwKAMugbfPu",
      +            "KgcbziOdPPRStin",
      +            "MgDYVCVVAVZjVCv",
      +            "RgVWYlRkucVyeYj",
      +            "WlPOmAIlNKbiLLh",
      +            "ngKPorkQQeZCDCh",
      +            "pXpajHeVaiBgnRy",
      +            "vzEJhYIqrlaVCSQ"
      +        ],
      +        "id": "ec9aa5b3-ac7c-45b1-b953-cedb81e5edc1",
      +        "name": "kttnlBIPLEnuBiZ",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "BaRiVtqyuNMZHPN",
      +            "FwewjwPbonGsHGT",
      +            "NuJLdsXCsPHpohJ",
      +            "aNgUAnBjTypdOSR",
      +            "eBbFcnqrkiOrmFS",
      +            "eDuAcRFfkLHWLDQ",
      +            "gCsvfvXcBMxmweb",
      +            "iWNmdhYHPugfbuK",
      +            "wNIkiYFWKrEAkWx",
      +            "zzSSwkPFznXoTyS"
      +        ],
      +        "refreshTokenValiditySeconds": 1933494902,
      +        "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 0,
      +        "allowedScopes": [
      +            
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": null,
      +        "grantTypes": [
      +            
      +        ],
      +        "id": "29b16b57-8212-4aeb-a180-b021399c0012",
      +        "privileges": [
      +            
      +        ],
      +        "redirectUris": [
      +            
      +        ],
      +        "refreshTokenValiditySeconds": 0,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 600000,
      +        "allowedScopes": [
      +            "Authentication"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$tMneESmkGPUwIQlzN3C4J.wcKrSmIq2uzsy96iKrUSOt42zNUZmNi",
      +        "grantTypes": [
      +            "client_credentials",
      +            "password"
      +        ],
      +        "id": "5139950a-ecc8-40e3-aa31-cf79fe1bb72a",
      +        "name": "Bootstrapped IDM Super Admin Client",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            
      +        ],
      +        "refreshTokenValiditySeconds": 0,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 1809947019,
      +        "allowedScopes": [
      +            "HTjyKASlWYCBEUL",
      +            "LuRbWINFCYYfqmn",
      +            "NISLZYXBQfuvomi",
      +            "aYHzRfYrLXanoHS",
      +            "evdIxHlemfODOKz",
      +            "iyDRsGFHXDfFBAV",
      +            "jFEaMGEnlgFXsoa",
      +            "mRAAkSlNbWWTqsG",
      +            "pDaAdfKPCVfbyaw",
      +            "vrdvokfjVROZPan"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$b7MNfMwh0BGVubuKYlDbV.5oCqJoeQYG2hSo9C4DihXOeb4CXqrsG",
      +        "contactEmail": "VaMZTtqRqBvOvBl",
      +        "contactFirstName": "ffHtrxjHpzIAihS",
      +        "contactLastName": "VcaCBwtCeZCfsxb",
      +        "description": "KQlCEHKgKGObNhi",
      +        "grantTypes": [
      +            "GKZMjJbGxVvKdTf",
      +            "HTBnDSaTnuDootw",
      +            "IOgFyTrlNyQcYUa",
      +            "SNqWULQeMVLrPjN",
      +            "ZvEUOgyqMOeoSjW",
      +            "bBzeQzHXRvcUBPu",
      +            "bkCouMGlhCaDhgb",
      +            "iwUvuqgFKLfcDVh",
      +            "juyotxqlMIGwiys",
      +            "sgyYQrnkPRVclVJ"
      +        ],
      +        "id": "abe5645a-b303-4dd7-bc4c-5a3599e4ce72",
      +        "name": "uHZUxyJqDAyNptF",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "GoAuyKzABYDTUqg",
      +            "HTwMUvPcQOYPkUT",
      +            "MJHipgdmPTxfUuj",
      +            "NLulSzXmjnCjifO",
      +            "VSlGAUERZQztLyT",
      +            "VwnhszQuaLEkQon",
      +            "bQJsqttVsvaHrtX",
      +            "cjMrHahYtcbTjkG",
      +            "oTZYTlcMuFlAnjY",
      +            "vnlzNRecpUiGAxX"
      +        ],
      +        "refreshTokenValiditySeconds": 1013769012,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 2124378825,
      +        "allowedScopes": [
      +            "IYULWZOlSmyOuQO",
      +            "JmpNgONMIZWZQLp",
      +            "RmIgJyXmUUzIspF",
      +            "bogyoaCJjLeRUtC",
      +            "iPZCIbXkTgsRtes",
      +            "kihJzBSfXirxlxq",
      +            "pZuBJSjRtJYbVPX",
      +            "qNFJwRqvzogwQjb",
      +            "rXSYjJOocszzdTJ",
      +            "sUGVsVEAJADDenq"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$b7UeYkUlzJtMQolYT0EfUuFvc0oxkWDIZK47WgIZl5WIs0fHe06jW",
      +        "contactEmail": "zfKuMYNkolWqAPK",
      +        "contactFirstName": "lgNQHrcREakjEDA",
      +        "contactLastName": "DILHlcDnOYXAxVh",
      +        "description": "fXFARwCruCXTNuE",
      +        "grantTypes": [
      +            "IUnJVmlnTYKcaJS",
      +            "SvKDbcqJkhyIhVX",
      +            "WDmeMkrVLQVxoUU",
      +            "apelxyjDDWXuCag",
      +            "dXivSOKqrFpaNAT",
      +            "mSJhWHXtVTkgqZS",
      +            "oQGyIGTwqCuirCf",
      +            "uTFTiJoIkarfpSA",
      +            "wQLNARxYjZmKDvE",
      +            "wuVbAPumkrvOlRv"
      +        ],
      +        "id": "00000000-0000-0000-0000-000000000000",
      +        "name": "EAtjINlTAReePqR",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "BNsvZRCMNyrtJaD",
      +            "FQXBHSNdEUimaNJ",
      +            "GWsniUCqOoNSPhn",
      +            "IbBIvORNmaAFOFT",
      +            "VPLtuVKbdigjZfq",
      +            "VUDiKjFEYBHhiqC",
      +            "aCbOaeXgMEapzyi",
      +            "cOAMxaavBWeBbvd",
      +            "rCRustlayuLmXnf",
      +            "zPtYmXtjrNdJoRw"
      +        ],
      +        "refreshTokenValiditySeconds": 419507870,
      +        "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 754238008,
      +        "allowedScopes": [
      +            "AGxOUOfBzAibEnX",
      +            "DnXPgPkHcXDJSNx",
      +            "GDebGtpNFedFMPm",
      +            "KjpNccNvtfIRMqx",
      +            "OrnXWhKCFwFDVCf",
      +            "OtVrUtgbUMhnHQd",
      +            "aErDlnPkIolnFvG",
      +            "bwWHWGNsHlSZDrG",
      +            "obStsABdnutCNuT",
      +            "rVZzTsgYuSqsEym"
      +        ],
      +        "autoApprove": true,
      +        "clientSecret": "$2a$10$m7Wy0xvy7Cw2uF28XcWUmOpFMp4iYFZTYQexd5r3FKTX2Vx8RaeGu",
      +        "contactEmail": "WcYFsLhijGBPjQY",
      +        "contactFirstName": "MCeAUJhvcnmEXko",
      +        "contactLastName": "jALQvTAoYrFAvCI",
      +        "description": "JSxfCILtMXellpE",
      +        "grantTypes": [
      +            "AUPLnUKJczywqLT",
      +            "MvgXIcoULCbArnF",
      +            "SUTZcNpCNUryhPk",
      +            "SZzixGZwOOwsdEm",
      +            "TUwlKSJzOQJjFtE",
      +            "UBYbkDYVWUqXtgV",
      +            "UMvtOwECDAtRaKe",
      +            "bvVjUGMHZuOjFvH",
      +            "lRpGIaMPiVPcQaX",
      +            "skvQACLVEhUWetK"
      +        ],
      +        "id": "25eeb46b-0332-4954-923c-6cacfab61e5e",
      +        "name": "cztobBVnSsdhUos",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "CoXWoFdJnvHsgEs",
      +            "LMyTEdLbEJGQjtO",
      +            "WRLrPPjoXxQhrnM",
      +            "fITktVzrQkgdBPx",
      +            "hgoSWAfeVATseYr",
      +            "pOEcevjMzzmFmaD",
      +            "qsCHHuCOZdZhkMh",
      +            "uKlmmfIzLBTmbLl",
      +            "wshXTzgJHAakLno",
      +            "ztSBSqnMvszorzj"
      +        ],
      +        "refreshTokenValiditySeconds": 2122765226,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 112231087,
      +        "allowedScopes": [
      +            "JGMMpPRhdYuWXWM",
      +            "SqgATtdjuWzdIVM",
      +            "WdmJIkwNtFkpvxv",
      +            "cMKgMHLGHuqqebY",
      +            "iivGvqdAzwWBFgG",
      +            "lSYnBbQLOzEWUpj",
      +            "pPYAdhBUCTjGQMH",
      +            "psAmNOXdhwZxnJk",
      +            "sfinhnHbsSGRFOZ",
      +            "uHqjAJxKEWirNKZ"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$bVZCH/ltnO2yuJLOIJnxoOJtDIKg/mDPT1ntIfUiD.mD3tS8GD/9.",
      +        "contactEmail": "BTzlOzxviOBjCVj",
      +        "contactFirstName": "weBRrYFUYrqXvEv",
      +        "contactLastName": "BEMvDYebZtccAUc",
      +        "description": "zVRyZGuFIxnBgJx",
      +        "grantTypes": [
      +            "FKkchfLYgGfpchA",
      +            "KAPCTXcUxFXwQOG",
      +            "KecdGwJMtQHpKAo",
      +            "PkyfhJsWTIThsiZ",
      +            "ScNivDlmQzDFXvx",
      +            "SckEYPiRzhuHeUo",
      +            "WCpeXjwnikZYRow",
      +            "ZzFcvrbMYryaIFn",
      +            "tKIHJZtIJYZhgCt",
      +            "thNSNRBUpckNMmn"
      +        ],
      +        "id": "4978ec48-abfb-47aa-854f-0e6410230c82",
      +        "name": "VJUpcLuNAFKgchn",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "DIpcrCYZDvdYePH",
      +            "HkudJidqIdMkftV",
      +            "ZlkEKMJRhgwvYdJ",
      +            "acSmGqIydkSwxsO",
      +            "gPZTJxjtKZsbqjR",
      +            "geUrWuiXpMfamxo",
      +            "rxrFHgktNHVaRsx",
      +            "sKhhRKcdTqhOmiz",
      +            "vVjkirLiAjfqAXj",
      +            "wPvvwMlZjkExsZG"
      +        ],
      +        "refreshTokenValiditySeconds": 52955175,
      +        "secretRequired": true
          }

relevant interaction:

{
        "description": "a request to get all clients",
        "request": {
            "method": "GET",
            "path": "/some/url/client"
        },
        "response": {
            "status": 200,
            "headers": {
                "Content-Type": "application/json; charset=UTF-8"
            },
            "body": [
                {
                    "accessTokenValiditySeconds": 42721462,
                    "allowedScopes": [
                        "JnTfAlnHKVSDzoWnUqZv"
                    ],
                    "autoApprove": true,
                    "grantTypes": [
                        "VfWudsTQINERQCnVKvoK"
                    ],
                    "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
                    "name": "FXUHHqWrZZcodhHBmeLf",
                    "redirectUris": [
                        "vWxSTjgJQvwUtwphDGcn"
                    ],
                    "refreshTokenValiditySeconds": 12393550,
                    "secretRequired": true
                }
            ],
            "matchingRules": {
                "$.body[*].allowedScopes[*]": {
                    "match": "type"
                },
                "$.body[*].redirectUris[*]": {
                    "match": "type"
                },
                "$.body[*].grantTypes[*]": {
                    "match": "type"
                },
                "$.body[*].redirectUris": {
                    "min": 0,
                    "match": "type"
                },
                "$.body[*].autoApprove": {
                    "match": "type"
                },
                "$.body": {
                    "min": 1,
                    "match": "type"
                },
                "$.body[*].id": {
                    "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
                },
                "$.body[*].accessTokenValiditySeconds": {
                    "match": "integer"
                },
                "$.body[*].secretRequired": {
                    "match": "type"
                },
                "$.body[*].refreshTokenValiditySeconds": {
                    "match": "integer"
                },
                "$.body[*].name": {
                    "match": "type"
                },
                "$.body[*].allowedScopes": {
                    "min": 0,
                    "match": "type"
                },
                "$.body[*].grantTypes": {
                    "min": 0,
                    "match": "type"
                }
            }
        },
        "providerState": "the 'zero' client exists"
    },

generating fragment:

            .given("the 'zero' client exists")
            .uponReceiving("a request to get all clients")
            .path("/some/url/client")
            .method("GET")
            .willRespondWith()
            .status(200)
            .body(PactDslJsonArray
                    .arrayMinLike(1)
                    .uuid("id")
                    .booleanType("secretRequired")
                    .eachLike("allowedScopes", stringType())
                    .eachLike("grantTypes", stringType())
                    .eachLike("redirectUris", stringType())
                    .integerType("accessTokenValiditySeconds")
                    .integerType("refreshTokenValiditySeconds")
                    .booleanType("autoApprove")
                    .stringType("name")
                    .closeObject())
            .toFragment();
enhancement

All 5 comments

Thanks for all the information, I was able to reproduce it with a local project.

Found the issue. $.body.2 is referring to the third item in the list (it is zero based), which does not have a name field.

{
    "accessTokenValiditySeconds": 0,
    "allowedScopes": [
    ],
    "autoApprove": false,
    "clientSecret": null,
    "grantTypes": [
    ],
    "id": "29b16b57-8212-4aeb-a180-b021399c0012",
    "privileges": [
    ],
    "redirectUris": [
    ],
    "refreshTokenValiditySeconds": 0,
    "secretRequired": false
  }

If the name is optional, you can leave it out of the consumer test.

So it sounds like it's an issue in how the error diff is displayed?

Yes, I think the output is really hard to see what was wrong and needs to be improved.

Improved it a bit by showing more localised diffs for missing elements:

  $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing

    Diff:

        "redirectUris": [
    -        "vWxSTjgJQvwUtwphDGcn"
    +        
        ],
    -    "secretRequired": true,
    -    "name": "FXUHHqWrZZcodhHBmeLf",
    -    "accessTokenValiditySeconds": 42721462,
    -    "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
    +    "secretRequired": false,
    +    "accessTokenValiditySeconds": 0,
    +    "privileges": [
    +        
    +    ],
    +    "id": "29b16b57-8212-4aeb-a180-b021399c0012",
    +    "clientSecret": null,
        "allowedScopes": [
    -        "JnTfAlnHKVSDzoWnUqZv"
    +        
        ],
    -    "autoApprove": true,
    -    "refreshTokenValiditySeconds": 12393550,
    +    "autoApprove": false,
    +    "refreshTokenValiditySeconds": 0,
        "grantTypes": [
    -        "VfWudsTQINERQCnVKvoK"
    +        
        ]
Was this page helpful?
0 / 5 - 0 ratings