diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 4e7a601..615b147 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -87,6 +87,28 @@ jobs: - name: Lint and test run: bin/rake + test_ofrep_provider: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./providers/openfeature-ofrep-provider + strategy: + matrix: + ruby-version: + - "3.3" + - "3.2" + - "3.1" + steps: + - uses: actions/checkout@v4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true + working-directory: ./providers/openfeature-ofrep-provider + - name: Lint and test + run: bin/rake + test_flipt_provider: runs-on: ubuntu-latest defaults: diff --git a/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider_spec.rb b/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider_spec.rb index f17e878..4bd1c97 100644 --- a/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider_spec.rb +++ b/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider_spec.rb @@ -3,6 +3,7 @@ require "spec_helper" require "open_feature/sdk" require "tempfile" +require_relative "../../../../../shared_config/conformance/provider_shared_examples" # https://openfeature.dev/docs/specification/sections/providers @@ -15,6 +16,13 @@ subject(:flagd_client) { described_class.build_client } + describe "conformance" do + let(:provider) { described_class.build_client } + + it_behaves_like "an OpenFeature provider" + it_behaves_like "an OpenFeature provider with integer and float support" + end + context "#configure" do context "when defining host, port and tls options of gRPC service it wishes to access with configure method" do subject(:explicit_configuration) do diff --git a/providers/openfeature-flagsmith-provider/spec/openfeature/flagsmith/provider_spec.rb b/providers/openfeature-flagsmith-provider/spec/openfeature/flagsmith/provider_spec.rb index c9a2a72..43afef3 100644 --- a/providers/openfeature-flagsmith-provider/spec/openfeature/flagsmith/provider_spec.rb +++ b/providers/openfeature-flagsmith-provider/spec/openfeature/flagsmith/provider_spec.rb @@ -25,6 +25,9 @@ def mock_flag(feature_name:, enabled:, value:) allow(::Flagsmith::Client).to receive(:new).and_return(mock_flagsmith_client) end + it_behaves_like "an OpenFeature provider" + it_behaves_like "an OpenFeature provider with integer and float support" + describe "#initialize" do it "should create provider with options" do expect(provider.options).to eq(options) diff --git a/providers/openfeature-flipt-provider/Gemfile.lock b/providers/openfeature-flipt-provider/Gemfile.lock index d398432..8bba977 100644 --- a/providers/openfeature-flipt-provider/Gemfile.lock +++ b/providers/openfeature-flipt-provider/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - openfeature-flipt-provider (0.0.2) + openfeature-flipt-provider (0.0.3) ffi (~> 1.17) flipt_client (~> 0.10.0) openfeature-sdk (~> 0.4.0) diff --git a/providers/openfeature-flipt-provider/lib/openfeature/flipt/version.rb b/providers/openfeature-flipt-provider/lib/openfeature/flipt/version.rb index 6644632..0e1bdc1 100644 --- a/providers/openfeature-flipt-provider/lib/openfeature/flipt/version.rb +++ b/providers/openfeature-flipt-provider/lib/openfeature/flipt/version.rb @@ -2,6 +2,6 @@ module OpenFeature module Flipt - VERSION = "0.0.2" + VERSION = "0.0.3" end end diff --git a/providers/openfeature-flipt-provider/spec/openfeature/flipt/provider_spec.rb b/providers/openfeature-flipt-provider/spec/openfeature/flipt/provider_spec.rb index 8b040bd..90ce504 100644 --- a/providers/openfeature-flipt-provider/spec/openfeature/flipt/provider_spec.rb +++ b/providers/openfeature-flipt-provider/spec/openfeature/flipt/provider_spec.rb @@ -15,6 +15,9 @@ allow(::Flipt::EvaluationClient).to receive(:new).with("test-namespace", {}).and_return(client_stub) end + it_behaves_like "an OpenFeature provider" + it_behaves_like "an OpenFeature provider with integer and float support" + context "2.1 - Feature Provider Interface" do describe "#metadata" do it "returns a name field which identifies the provider implementation" do diff --git a/providers/openfeature-go-feature-flag-provider/spec/openfeature/gofeatureflag/provider_spec.rb b/providers/openfeature-go-feature-flag-provider/spec/openfeature/gofeatureflag/provider_spec.rb index e243254..5d10f5d 100644 --- a/providers/openfeature-go-feature-flag-provider/spec/openfeature/gofeatureflag/provider_spec.rb +++ b/providers/openfeature-go-feature-flag-provider/spec/openfeature/gofeatureflag/provider_spec.rb @@ -10,6 +10,12 @@ it_behaves_like "an OpenFeature provider" + describe "conformance" do + let(:provider) { goff_provider } + + it_behaves_like "an OpenFeature provider" + end + context "#metadata" do it "metadata name is defined" do expect(goff_provider).to respond_to(:metadata) diff --git a/providers/openfeature-meta_provider/spec/openfeature/meta_provider_spec.rb b/providers/openfeature-meta_provider/spec/openfeature/meta_provider_spec.rb index fe34379..9e388db 100644 --- a/providers/openfeature-meta_provider/spec/openfeature/meta_provider_spec.rb +++ b/providers/openfeature-meta_provider/spec/openfeature/meta_provider_spec.rb @@ -90,6 +90,12 @@ ) end + describe "conformance" do + let(:provider) { meta_provider } + + it_behaves_like "an OpenFeature provider" + end + describe "#metadata" do it "combines all metadata names" do expect(meta_provider.metadata.name).to eq("MetaProvider: In-memory Provider, In-memory Provider") diff --git a/release-please-config.json b/release-please-config.json index c724cc8..9beabc4 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -42,6 +42,16 @@ "README.md" ] }, + "providers/openfeature-ofrep-provider": { + "package-name": "openfeature-ofrep-provider", + "version-file": "lib/openfeature/ofrep/provider/version.rb", + "bump-minor-pre-major": true, + "bump-patch-for-minor-pre-major": true, + "versioning": "default", + "extra-files": [ + "README.md" + ] + }, "providers/openfeature-flagsmith-provider": { "package-name": "openfeature-flagsmith-provider", "version-file": "lib/openfeature/flagsmith/version.rb",