# frozen_string_literal: true require 'test_helper' class MetadataBooleanTest < ActiveSupport::TestCase setup do @site = build(:site) @document = build(:document, site: @site.jekyll) @name = SecureRandom.hex @layout = build(:layout, site: @site) @metadata = MetadataBoolean.new(site: @site, document: @document, name: @name, type: 'boolean', layout: @layout) end def random_value [true, false].sample end test 'se guarda en el encabezado' do assert @metadata.front_matter? end test 'no se puede indexar' do assert_not @metadata.indexable? end test 'nunca es privado' do assert_not @metadata.private? end test 'son false por defecto' do assert_equal false, @metadata.default_value end test 'aunque sean false nunca son considerados vacĂ­os' do assert_not @metadata.empty? end test 'pueden tener un valor por defecto desde el layout' do [true, false].each do |default| @layout = build(:layout, site: @site, metadata: { @name => { 'default' => { I18n.locale.to_s => default } } }) @metadata = MetadataBoolean.new(site: @site, document: @document, name: @name, type: 'boolean', layout: @layout) assert_equal default, @metadata.default_value end end test 'pueden ser 0' do @metadata.value = '0' assert_equal false, @metadata.value @metadata.save assert_equal false, @metadata.value end test 'pueden ser 1' do @metadata.value = '1' assert_equal true, @metadata.value @metadata.save assert_equal true, @metadata.value end test 'pueden ser false' do @metadata.value = false assert_equal false, @metadata.value @metadata.save assert_equal false, @metadata.value end test 'pueden ser true' do @metadata.value = true assert_equal true, @metadata.value @metadata.save assert_equal true, @metadata.value end end