Skip to content

Commit

Permalink
adding encoding configExtension with licences
Browse files Browse the repository at this point in the history
  • Loading branch information
pacostas committed Apr 28, 2023
1 parent 0081571 commit 324c5d3
Showing 1 changed file with 115 additions and 3 deletions.
118 changes: 115 additions & 3 deletions cargo/extension_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ func testExtensionConfig(t *testing.T, context spec.G, it spec.S) {
buffer = bytes.NewBuffer(nil)
})

context("EncodeConfig", func() {
it("encodes the config to TOML", func() {
context("EncodeExtensionConfig", func() {
it("encodes the extension config to TOML", func() {

err := cargo.EncodeExtensionConfig(buffer, cargo.ExtensionConfig{
API: "0.7",
Expand Down Expand Up @@ -99,9 +99,9 @@ api = "0.7"
[[metadata.configurations]]
build = true
default = "0"
description = "some-metadata-configuration-description"
launch = true
default = "0"
name = "SOME_METADATA_CONFIGURATION_NAME"
[metadata.default-versions]
some-dependency = "1.2.x"
Expand All @@ -118,6 +118,118 @@ api = "0.7"
stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.tiny"]
uri = "http://some-url"
version = "1.2.3"
`))
})

it("encodes the config to TOML when the config dependency licenses are structured like ConfigExtensionLicenses ", func() {

err := cargo.EncodeExtensionConfig(buffer, cargo.ExtensionConfig{
API: "0.7",
Extension: cargo.ConfigExtension{
ID: "some-extension-id",
Name: "some-extension-name",
Version: "some-extension-version",
Homepage: "some-extension-homepage",
Description: "some-extension-description",
Keywords: []string{"some-extension-keyword"},
Licenses: []cargo.ConfigExtensionLicense{
{
Type: "some-license-type",
URI: "some-license-uri",
},
},
},
Metadata: cargo.ConfigExtensionMetadata{
IncludeFiles: []string{
"some-include-file",
"other-include-file",
},
PrePackage: "some-pre-package-script.sh",
Dependencies: []cargo.ConfigExtensionMetadataDependency{
{
Checksum: "sha256:some-sum",
ID: "some-dependency",
Licenses: []interface{}{
cargo.ConfigBuildpackLicense{
Type: "fancy-license",
URI: "some-license-uri",
},
cargo.ConfigBuildpackLicense{
Type: "fancy-license-2",
URI: "some-license-uri",
},
}, Name: "Some Dependency",
SHA256: "shasum",
Source: "source",
SourceChecksum: "sha256:source-shasum",
SourceSHA256: "source-shasum",
Stacks: []string{"io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.tiny"},
URI: "http://some-url",
Version: "1.2.3",
},
},
Configurations: []cargo.ConfigExtensionMetadataConfiguration{
{
Default: "0",
Description: "some-metadata-configuration-description",
Launch: true,
Name: "SOME_METADATA_CONFIGURATION_NAME",
Build: true,
},
},
DefaultVersions: map[string]string{
"some-dependency": "1.2.x",
},
},
})
Expect(err).NotTo(HaveOccurred())
Expect(buffer.String()).To(MatchTOML(`
api = "0.7"
[extension]
description = "some-extension-description"
homepage = "some-extension-homepage"
id = "some-extension-id"
keywords = ["some-extension-keyword"]
name = "some-extension-name"
version = "some-extension-version"
[[extension.licenses]]
type = "some-license-type"
uri = "some-license-uri"
[metadata]
include-files = ["some-include-file", "other-include-file"]
pre-package = "some-pre-package-script.sh"
[[metadata.configurations]]
build = true
default = "0"
description = "some-metadata-configuration-description"
launch = true
name = "SOME_METADATA_CONFIGURATION_NAME"
[metadata.default-versions]
some-dependency = "1.2.x"
[[metadata.dependencies]]
checksum = "sha256:some-sum"
id = "some-dependency"
name = "Some Dependency"
sha256 = "shasum"
source = "source"
source-checksum = "sha256:source-shasum"
source_sha256 = "source-shasum"
stacks = ["io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.tiny"]
uri = "http://some-url"
version = "1.2.3"
[[metadata.dependencies.licenses]]
type = "fancy-license"
uri = "some-license-uri"
[[metadata.dependencies.licenses]]
type = "fancy-license-2"
uri = "some-license-uri"
`))
})
})
Expand Down

0 comments on commit 324c5d3

Please sign in to comment.