Note version 3.0 removed the `controller` and `request` methods used in component tests, introducing `vc_test_controller` and `vc_test_request` instead. Bumps [view_component](https://github.com/viewcomponent/view_component) from 2.78.0 to 3.5.0. - [Release notes](https://github.com/viewcomponent/view_component/releases) - [Changelog](https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/viewcomponent/view_component/compare/v2.78.0...v3.5.0) --- updated-dependencies: - dependency-name: view_component dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
60 lines
2.1 KiB
Ruby
60 lines
2.1 KiB
Ruby
require "rails_helper"
|
|
|
|
describe Admin::Budgets::IndexComponent, controller: Admin::BudgetsController do
|
|
before do
|
|
allow(vc_test_controller).to receive(:valid_filters).and_return(["all"])
|
|
allow(vc_test_controller).to receive(:current_filter).and_return("all")
|
|
end
|
|
|
|
describe "#phase_progress_text" do
|
|
it "displays current phase zero for budgets with no current phase" do
|
|
budget = create(:budget, :accepting, name: "Not enabled phase")
|
|
budget.phases.accepting.update!(enabled: false)
|
|
|
|
render_inline Admin::Budgets::IndexComponent.new(Budget.page(1))
|
|
|
|
expect(page.find("tr", text: "Not enabled phase")).to have_content "0/8"
|
|
end
|
|
|
|
it "displays phase zero out of zero for budgets with no enabled phases" do
|
|
budget = create(:budget, name: "Without phases")
|
|
budget.phases.each { |phase| phase.update!(enabled: false) }
|
|
|
|
render_inline Admin::Budgets::IndexComponent.new(Budget.page(1))
|
|
|
|
expect(page.find("tr", text: "Without phases")).to have_content "0/0"
|
|
end
|
|
end
|
|
|
|
describe "#type" do
|
|
let(:budget) { create(:budget, name: "With type") }
|
|
|
|
it "displays 'single heading' for budgets with one heading" do
|
|
create(:budget_heading, budget: budget)
|
|
|
|
render_inline Admin::Budgets::IndexComponent.new(Budget.page(1))
|
|
|
|
expect(page.find("thead")).to have_content "Type"
|
|
expect(page.find("tr", text: "With type")).to have_content "Single heading"
|
|
end
|
|
|
|
it "displays 'multiple headings' for budgets with multiple headings" do
|
|
2.times { create(:budget_heading, budget: budget) }
|
|
|
|
render_inline Admin::Budgets::IndexComponent.new(Budget.page(1))
|
|
|
|
expect(page.find("thead")).to have_content "Type"
|
|
expect(page.find("tr", text: "With type")).to have_content "Multiple headings"
|
|
end
|
|
|
|
it "displays 'pending: no headings yet' for budgets without headings" do
|
|
create(:budget, name: "Without headings")
|
|
|
|
render_inline Admin::Budgets::IndexComponent.new(Budget.page(1))
|
|
|
|
expect(page.find("thead")).to have_content "Type"
|
|
expect(page.find("tr", text: "Without headings")).to have_content "Pending: No headings yet"
|
|
end
|
|
end
|
|
end
|