by
486 16
0
5
9,845
1
Top 1% !
Popular
Pearl of Wisdom
Specified
MultiPlatform
Popularity: 434th place
Created
Modified Aug 27, 2015
No tags for this snippet yet.
Languageruby

TEST: xxxs_test.rb

integration testing
Copy Embed Code
<iframe id="embedFrame" style="width:600px; height:300px;"
src="https://www.snip2code.com/Embed/611321/TEST--xxxs_test-rb?startLine=0"></iframe>
Click on the embed code to copy it into your clipboard Width Height
Leave empty to retrieve all the content Start End
require 'test_helper' class NombreTablaEnSingularsTest < ActionDispatch::IntegrationTest setup do @root = users :admin @user = users :user @txt = 'nombre_tabla_en_singular' @palabra = 'valor' @cambiar = 'modificado' @duplicado = NombreTablaEnSingular.find(3).campo_ordenado @datos_user = { campo_ordenado: 'texto', solo_root_ns: false, usuario_actual: @user } @datos_root = { campo_ordenado: 'texto', solo_root_ns: false, usuario_actual: @root } @datos_user_root = { campo_ordenado: 'texto', solo_root_ns: true, usuario_actual: @user } end test 'Prueba #XXX-I-001: usuario se logea, y luego' do # nos logeamos como usuario post_via_redirect '/users/login', 'user[username]' => 'user', 'user[password]' => 'password' # vamos a la pagina principal get '/' assert_response :success, 'no se logeo' ### index # vamos al index de nombre_tabla_en_singular get nombre_tabla_en_singulars_path assert_response :success ### print # generamos el listado de nombre_tabla_en_singulars get nombre_tabla_en_singulars_listado_path assert_response :not_acceptable ### new # creamos un nuevo nombre_tabla_en_singular xhr :get, "/#{@txt}s/new" assert_response :success # capturamos los nuevos datos xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => @palabra, "#{@txt}[solo_root_ns]" => false } assert_response :success tut = NombreTablaEnSingular.last assert_equal tut.campo_ordenado, @palabra assert_select 'form', 0 assert_equal css_select( '.ui.pointing.below.label.red' ).size, 0 # capturamos los mismos datos con la finalidad de evalur que aparezca el mensaje de error por duplicidad xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => @duplicado, "#{@txt}[solo_root_ns]" => false } assert_select 'form', 1 assert_response :success # capturamos con datos en blanco xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => '', "#{@txt}[solo_root_ns]" => false } assert_select 'form', 1 assert_response :success # capturamos datos de 1 caracteres xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => 'a', "#{@txt}[solo_root_ns]" => false } assert_select 'form', 1 assert_response :success ### edit # obtenemos el registro en pantalla de captura tut = NombreTablaEnSingular.first xhr :get, "/#{@txt}s/#{tut.id}/edit" assert_response :success # editamos sin cambiar valores xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => tut.campo_ordenado, "#{@txt}[solo_root_ns]" => false } assert_response :success assert_select 'form', 0 # editamos cambiando valores antes = tut.campo_ordenado xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => @cambiar, "#{@txt}[solo_root_ns]" => false } assert_response :success assert_select 'form', 0 tut = NombreTablaEnSingular.find tut.id assert_not_equal antes, tut.campo_ordenado # editamos duplicando valores NombreTablaEnSingular.create @datos_user xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => @duplicado } assert_response :success assert_select 'form', 1 tut = NombreTablaEnSingular.find tut.id assert_not_equal @duplicado, tut.campo_ordenado # editamos dejando en blanco los valres xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => '' } assert_response :success assert_select 'form', 1 # editamos con valores de 1 caracteres xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => 'u' } assert_response :success assert_select 'form', 1 # no puede editar si solo_root_ns = true xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => 'no debe', "#{@txt}[solo_root_ns]" => true } assert_response :success assert_not_equal 'no debe', NombreTablaEnSingular.find( tut.id ).campo_ordenado ### delete # verificamos que aparezca el diálogo de confirmar para borrar tut = NombreTablaEnSingular.last xhr :get, "/#{@txt}s/#{tut.id}/confirmar_borrar" assert_response :success # eliminamos con solo_root_ns=false assert_difference 'NombreTablaEnSingular.count', -1 do xhr :delete, "/#{@txt}s/#{tut.id}" end # no debe eliminar con solo_root_ns=true tut = NombreTablaEnSingular.create @datos_user_root assert_no_difference 'NombreTablaEnSingular.count', -1 do xhr :delete, "/#{@txt}s/#{tut.id}" end end test 'Prueba #XXX-I-002: root se logea, y luego' do # nos logeamos como usuario post_via_redirect '/users/login', 'user[username]' => 'root', 'user[password]' => '5170yPOR0771c3Ya' # vamos a la pagina principal get '/' assert_response :success ### index # vamos al index de nombre_tabla_en_singular get nombre_tabla_en_singulars_path assert_response :success ### print # generamos el listado de nombre_tabla_en_singulars get nombre_tabla_en_singulars_listado_path assert_response :not_acceptable ### new # creamos un nuevo nombre_tabla_en_singular xhr :get, "/#{@txt}s/new" assert_response :success # capturamos los nuevos datos xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => @palabra, "#{@txt}[solo_root_ns]" => false } assert_response :success tut = NombreTablaEnSingular.last assert_equal tut.campo_ordenado, @palabra assert_select 'form', 0 assert_equal css_select( '.ui.pointing.below.label.red' ).size, 0 # capturamos los mismos datos con la finalidad de evalur que aparezca el mensaje de error por duplicidad xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => @duplicado, "#{@txt}[solo_root_ns]" => true } assert_select 'form', 1 assert_response :success # capturamos con datos en blanco xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => '', "#{@txt}[solo_root_ns]" => true } assert_select 'form', 1 assert_response :success # capturamos datos de 1 caracteres xhr :post, "/#{@txt}s", {"#{@txt}[campo_ordenado]" => 'a', "#{@txt}[solo_root_ns]" => true } assert_select 'form', 1 assert_response :success ### edit # obtenemos el registro en pantalla de captura tut = NombreTablaEnSingular.first xhr :get, "/#{@txt}s/#{tut.id}/edit" assert_response :success # editamos sin cambiar valores xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => tut.campo_ordenado, "#{@txt}[solo_root_ns]" => tut.solo_root_ns } assert_response :success assert_select 'form', 0 # editamos cambiando valores antes = tut.campo_ordenado xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => @cambiar, "#{@txt}[solo_root_ns]" => tut.solo_root_ns } assert_response :success assert_select 'form', 0 tut = NombreTablaEnSingular.find tut.id assert_not_equal antes, tut.campo_ordenado # editamos duplicando valores NombreTablaEnSingular.create @datos_root xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => @duplicado } assert_response :success assert_select 'form', 1 tut = NombreTablaEnSingular.find tut.id assert_not_equal @duplicado, tut.campo_ordenado # editamos dejando en blanco los valres xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => '' } assert_response :success assert_select 'form', 1 # editamos con valores de 2 caracteres xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => 'u' } assert_response :success assert_select 'form', 1 # no puede editar si solo_root_ns = true xhr :patch, "/#{@txt}s/#{tut.id}", {"#{@txt}[campo_ordenado]" => @cambiar, "#{@txt}[solo_root_ns]" => true } assert_response :success assert_equal @cambiar, NombreTablaEnSingular.find( tut.id ).campo_ordenado ### delete # verificamos que aparezca el diálogo de confirmar para borrar tut = NombreTablaEnSingular.last xhr :get, "/#{@txt}s/#{tut.id}/confirmar_borrar" assert_response :success # eliminamos con solo_root_ns=false assert_difference 'NombreTablaEnSingular.count', -1 do xhr :delete, "/#{@txt}s/#{tut.id}" end # no debe eliminar con solo_root_ns=true tut = NombreTablaEnSingular.create @datos_root assert_difference 'NombreTablaEnSingular.count', -1 do xhr :delete, "/#{@txt}s/#{tut.id}" end end end
If you want to be updated about similar snippets, Sign in and follow our Channels

blog comments powered by Disqus