podemos-info/participa2

View on GitHub
decidim-module-gravity_forms/spec/commands/decidim/gravity_forms/admin/create_gravity_form_spec.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require "spec_helper"

describe Decidim::GravityForms::Admin::CreateGravityForm do
  subject { described_class.new(form) }

  let(:current_component) do
    create(:component, manifest_name: "gravity_forms")
  end

  let(:form) do
    double(
      invalid?: invalid,
      title: { en: "title" },
      description: { en: "description" },
      slug: "my-slug",
      form_number: "7262",
      require_login: false,
      hidden: false,
      current_component: current_component
    )
  end

  context "when the form is not valid" do
    let(:invalid) { true }

    it "is not valid" do
      expect { subject.call }.to broadcast(:invalid)
    end
  end

  context "when everything is ok" do
    let(:invalid) { false }

    let(:gravity_form) { Decidim::GravityForms::GravityForm.last }

    it "creates the gravity form" do
      expect { subject.call }.to change { Decidim::GravityForms::GravityForm.count }.by(1)
    end

    it "sets the correct attributes" do
      subject.call

      expect(gravity_form.component).to eq current_component
      expect(translated(gravity_form.title)).to eq "title"
      expect(translated(gravity_form.description)).to eq "description"
      expect(gravity_form.slug).to eq "my-slug"
      expect(gravity_form.form_number).to eq 7262
      expect(gravity_form.require_login).to eq false
      expect(gravity_form.hidden).to eq false
    end
  end
end