Sha256: 7b65728b930386d335175dba536e5e9c65af065f71cc236bca14c4c962bdb064

Contents?: true

Size: 1.64 KB

Versions: 61

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true

require "spec_helper"

shared_examples_for "traceable interface" do
  describe "traceable", versioning: true do
    let(:version_author) { try(:author) || model.try(:creator_identity) || model.try(:normalized_author) }

    before { Decidim.traceability.update!(model, version_author, title: { en: "test" }) }

    context "when field createdAt" do
      let(:query) { "{ versions { createdAt } }" }

      it "returns created_at field of the version to iso format" do
        dates = response["versions"].map { |version| version["createdAt"] }
        expect(dates).to include(*model.versions.map { |version| version.created_at.to_time.iso8601 })
      end
    end

    context "when field id" do
      let(:query) { "{ versions { id } }" }

      it "returns ID field of the version" do
        ids = response["versions"].map { |version| version["id"].to_i }
        expect(ids).to include(*model.versions.map(&:id))
      end
    end

    context "when field editor" do
      let(:query) { "{ versions { editor { name } } }" }

      it "returns editor field of the versions" do
        editors = response["versions"].map { |version| version["editor"]["name"] if version["editor"] }
        expect(editors).to include(*model.versions.map { |version| version.editor.name if version.respond_to? :editor })
      end
    end

    context "when field changeset" do
      let(:query) { "{ versions { changeset } }" }

      it "returns changeset field of the versions" do
        changesets = response["versions"].map { |version| version["changeset"] }
        expect(changesets).to include(*model.versions.map(&:changeset))
      end
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc1 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.2 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.5 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.1 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.4 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.27.9 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.0 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.3 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.27.8 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.0.rc4 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.0.rc3 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.0.rc2 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.29.0.rc1 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.2 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.27.7 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.1 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.27.6 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.26.10 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.26.9 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
decidim-core-0.28.0 lib/decidim/core/test/shared_examples/traceable_interface_examples.rb