package
0.9.0
Repository: https://github.com/skf/go-tests-utility.git
Documentation: pkg.go.dev

# README

JSON utilities for godog test suits

Implements a matcher for JSON encoded structures.

Usage Example:

Feature:

Feature: It should be posible to create and retreive users from the service
    
    Scenario: If should be possible to create a user
        When given the following json dump:
        """
            {"key-0" : "value", "key-1" : {"key-key-1": ["value-0", "value-1"]}}
        """
        Then the path ".key-1.key-key-1[1]" should match "value-1"

Backing code:

import (
    "strings"
    "github.com/DATA-DOG/godog"
    "github.com/DATA-DOG/godog/gherkin"
    "github.com/SKF/go-tests-utility/api/godog/json"
)

type state struct {
    dump []byte
}

func (st *state) setJsonDump(input *gherkin.DocString) error {
    st.dump = []byte(strings.TrimSpace(input.Content))
    return nil
}

func (st *state) matchJson(key, pattern string) error {
    return Match(st.dump, key, pattern)
}

func FeatureContext(s *godog.Suite) {
    st := state{}
    s.Step(`^given the following json dump:$`, st.setJsonDump)
    s.Step(`^the path "([^"]*)" should match "([^"]*)"$`, st.matchJson)
}