Skip to content

Commit

Permalink
adding encoding extension
Browse files Browse the repository at this point in the history
  • Loading branch information
pacostas committed Apr 28, 2023
1 parent 0216b4a commit 0081571
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 6 deletions.
6 changes: 3 additions & 3 deletions cargo/extension_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ type ConfigExtensionMetadataDependency struct {
}
type ConfigExtensionMetadataConfiguration struct {
Default string `toml:"default" json:"default,omitempty"`
Description string `toml:"description" json:"description,omitempty"`
Launch bool `toml:"launch" json:"launch,omitempty"`
Launch bool `toml:"launch" json:"launch,omitempty"`
Description string `toml:"description" json:"description,omitempty"`
Build bool `toml:"build" json:"build,omitempty"`
Name string `toml:"name" json:"name,omitempty"`
Build bool `toml:"build" json:"build,omitempty"`
}
type ConfigExtension struct {
ID string `toml:"id" json:"id,omitempty"`
Expand Down
110 changes: 107 additions & 3 deletions cargo/extension_config_test.go
Original file line number Diff line number Diff line change
@@ -1,20 +1,127 @@
package cargo_test

import (
"bytes"

"strings"
"testing"

"github.com/paketo-buildpacks/packit/v2/cargo"
"github.com/sclevine/spec"

. "github.com/onsi/gomega"
. "github.com/paketo-buildpacks/packit/v2/matchers"
)

func testExtensionConfig(t *testing.T, context spec.G, it spec.S) {
var (
Expect = NewWithT(t).Expect
buffer *bytes.Buffer
)

it.Before(func() {
buffer = bytes.NewBuffer(nil)
})

context("EncodeConfig", func() {
it("encodes the config to TOML", 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{}{"fancy-license", "fancy-license-2"},
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
description = "some-metadata-configuration-description"
launch = true
default = "0"
name = "SOME_METADATA_CONFIGURATION_NAME"
[metadata.default-versions]
some-dependency = "1.2.x"
[[metadata.dependencies]]
checksum = "sha256:some-sum"
id = "some-dependency"
licenses = ["fancy-license", "fancy-license-2"]
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"
`))
})
})

context("DecodeExtensionConfig", func() {
it("decodes TOML to Extensionconfig", func() {
tomlBuffer := strings.NewReader(`
Expand All @@ -39,9 +146,6 @@ keywords = [ "some-extension-keyword" ]
[metadata.default-versions]
some-dependency = "1.2.x"
[[metadata.some-map]]
key = "value"
[[metadata.dependencies]]
checksum = "sha256:some-sum"
id = "some-dependency"
Expand Down

0 comments on commit 0081571

Please sign in to comment.