github.com/olljanat/moby@v1.13.1/cli/compose/schema/schema_test.go (about)

     1  package schema
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  type dict map[string]interface{}
    10  
    11  func TestValidate(t *testing.T) {
    12  	config := dict{
    13  		"version": "3.0",
    14  		"services": dict{
    15  			"foo": dict{
    16  				"image": "busybox",
    17  			},
    18  		},
    19  	}
    20  
    21  	assert.NoError(t, Validate(config, "3.0"))
    22  }
    23  
    24  func TestValidateUndefinedTopLevelOption(t *testing.T) {
    25  	config := dict{
    26  		"version": "3.0",
    27  		"helicopters": dict{
    28  			"foo": dict{
    29  				"image": "busybox",
    30  			},
    31  		},
    32  	}
    33  
    34  	err := Validate(config, "3.0")
    35  	assert.Error(t, err)
    36  	assert.Contains(t, err.Error(), "Additional property helicopters is not allowed")
    37  }
    38  
    39  func TestValidateInvalidVersion(t *testing.T) {
    40  	config := dict{
    41  		"version": "2.1",
    42  		"services": dict{
    43  			"foo": dict{
    44  				"image": "busybox",
    45  			},
    46  		},
    47  	}
    48  
    49  	err := Validate(config, "2.1")
    50  	assert.Error(t, err)
    51  	assert.Contains(t, err.Error(), "unsupported Compose file version: 2.1")
    52  }