Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/scripts/split_spec.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -eou pipefail

echo "Running FOAS CLI versions command"
foascli versions -s openapi-foas.json -o ./openapi/v2/versions.json --env "${target_env:?}" --stability-level stable
foascli versions -s openapi-foas.json -o ./openapi/v2/versions.json --env "${target_env:?}" --stability-level stable --stability-level preview

echo "Running FOAS CLI split command with the following --env=${target_env:?} and -o=./openapi/v2/openapi.json"

Expand All @@ -12,5 +12,8 @@ mv -f "openapi-foas.json" "./openapi/v2.json"
foascli split -s openapi-foas.yaml --env "${target_env:?}" -o ./openapi/v2/openapi.yaml
mv -f "openapi-foas.yaml" "./openapi/v2.yaml"

# Create folder if it does not exist
mkdir -p ./openapi/private

echo "Moving preview files to preview and private-preview folder"
find ./openapi/v2 -type f -name "*private-preview*" -exec mv -f {} ./openapi/private/ \;
50 changes: 50 additions & 0 deletions tools/cli/internal/apiversion/stabilitylevel_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package apiversion

import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

func TestIsPreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPreviewSabilityLevel("preview"))
assert.True(t, IsPreviewSabilityLevel("PREVIEW"))
assert.True(t, IsPreviewSabilityLevel("prEvIEW"))
assert.True(t, IsPreviewSabilityLevel("private-preview"))
assert.True(t, IsPreviewSabilityLevel("public-preview"))
assert.False(t, IsPreviewSabilityLevel("stable"))
assert.False(t, IsPreviewSabilityLevel("invalid"))
}

func TestIsPrivatePreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPrivatePreviewSabilityLevel("private-preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("public-preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("preview"))
assert.False(t, IsPrivatePreviewSabilityLevel("stable"))
assert.False(t, IsPrivatePreviewSabilityLevel("invalid"))
}

func TestIsPublicPreviewSabilityLevel(t *testing.T) {
assert.True(t, IsPublicPreviewSabilityLevel("public-preview"))
assert.True(t, IsPublicPreviewSabilityLevel("preview"))
assert.False(t, IsPublicPreviewSabilityLevel("private-preview"))
assert.False(t, IsPublicPreviewSabilityLevel("stable"))
assert.False(t, IsPublicPreviewSabilityLevel("invalid"))
}

func TestIsStableSabilityLevel(t *testing.T) {
assert.True(t, IsStableSabilityLevel("stable"))
assert.False(t, IsStableSabilityLevel("preview"))
assert.False(t, IsStableSabilityLevel("private-preview"))
assert.False(t, IsStableSabilityLevel("public-preview"))
assert.False(t, IsStableSabilityLevel("invalid"))
}

func TestValidateStabilityLevel(t *testing.T) {
require.NoError(t, ValidateStabilityLevel("stable"))
require.NoError(t, ValidateStabilityLevel("preview"))
require.NoError(t, ValidateStabilityLevel("private-preview"))
require.NoError(t, ValidateStabilityLevel("public-preview"))
assert.Error(t, ValidateStabilityLevel("invalid"))
}
Loading