diff --git a/README_es.markdown b/README_es.markdown index 6182d31..5c3fc78 100644 --- a/README_es.markdown +++ b/README_es.markdown @@ -186,9 +186,24 @@ Convenciones generales: * asignación de valores con el verbo **tener** en tercera persona (p.e. "Dado que dichas Acelgas **tienen** como variedad Amarilla de Lyon") * todas las definiciones para "Cuando algo ocurre" (o *Then's*, ver más abajo) son válidas también como "Dado el contexto" incorporándoles el prefijo "que" (p.e. "Dado que visito la portada"). -#### Estoy en una página específica (alias de *Solicitud de una página*) \* +#### Estoy en una página (alias de *Solicitud de una página*) \* +[ejemplos](/nando/mundo-pepino/tree/master/features/es_ES/cuando-visito-una-pagina.feature) +##### Página específica opcionalmente indicada con un nombre coloquial Dado que estoy en la portada -[más ejemplos](/nando/mundo-pepino/tree/master/features/es_ES/cuando-visito-url-especifica.feature) +##### Página asociada a un recurso concreto + Dado que estoy en la página del huerto "H-01" +##### Página asociada al último recurso definido de un modelo concreto + Dado que estoy en la página de dicho huerto +##### Página asociada al último recurso definido + Dado que estoy en su página +##### Índice o listado de un recursos de un modelo + Dado que estoy en la página de Tomates +##### Página de creación de un recurso + Dado que estoy en la página de creación de Tomate +##### Página de edición de un recurso + Dado que estoy en la página de edición del huerto "H-01" +##### Página relativa a una visitada con anterioridad + Dado que estoy en la siguiente página #### Creación de uno o varios registros asignándoles opcionalmente un nombre Dado que tenemos Un Producto llamado "Acelgas" @@ -254,6 +269,8 @@ Convenciones generales: Cuando visito la portada ##### Página asociada a un recurso concreto Cuando visito la página del huerto "H-01" +##### Página asociada al último recurso definido de un modelo concreto + Cuando visito la página de dicho huerto ##### Página asociada al último recurso definido Cuando visito su página ##### Índice o listado de un recursos de un modelo @@ -273,6 +290,8 @@ Convenciones generales: Cuando pulso el enlace a la portada ##### Página asociada a un recurso concreto Cuando pulso el enlace a la página del huerto "H-01" +##### Página asociada al último recurso definido de un modelo concreto + Cuando pulso el enlace a la página de dicho huerto ##### Página asociada al último recurso definido Cuando pulso el enlace a su página ##### Índice o listado de un recursos de un modelo @@ -349,6 +368,8 @@ Distinguimos entre los seis tipos de página que tienen sentido aquí (todos exc Entonces debo estar en la portada ##### Página asociada a un recurso concreto Entonces debo estar en la página del huerto "H-01" +##### Página asociada al último recurso definido de un modelo concreto + Entonces debo estar en la página de dicho huerto ##### Página asociada al último recurso definido Entonces debo estar en su página ##### Índice o listado de un recursos de un modelo @@ -396,6 +417,8 @@ Distinguimos entre los seis tipos de página que tienen sentido aquí (todos exc Entonces debo ver un enlace a la portada ##### Página asociada a un recurso concreto Entonces debo ver un enlace a la página del huerto "H-01" +##### Página asociada al último recurso definido de un modelo concreto + Entonces debo ver un enlace a la página de dicho huerto ##### Página asociada al último recurso definido Entonces debo ver un enlace a su página ##### Índice o listado de un recursos de un modelo diff --git a/features/es_ES/cuando-pulso-el-enlace.feature b/features/es_ES/cuando-pulso-el-enlace.feature index 822e56f..68702ad 100644 --- a/features/es_ES/cuando-pulso-el-enlace.feature +++ b/features/es_ES/cuando-pulso-el-enlace.feature @@ -71,17 +71,18 @@ Característica: pulso el enlace opcionalmente dentro de un selector | a la pagina de | | de | - Esquema del escenario: Pincho en un enlace de un recurso concreto + Esquema del escenario: Pincho en un enlace de un recurso concreto o el último de un modelo Dado que tenemos un huerto llamado "Huerto One" - Cuando visito la página de huertos - Y pincho en el enlace huerto "Huerto One" + Cuando visito /orchards + Y pincho en el enlace Entonces debería encontrarme en la página del huerto "Huerto One" Ejemplos: - | a_la_pagina_del | - | a la pagina del | - | a la pagina de la | - | del | - | de la | + | a_la_pagina_del | huerto | + | a la página del | huerto "Huerto One" | + | a la página de la | huerto "Huerto One" | + | del | huerto "Huerto One" | + | de la | huerto "Huerto One" | + | a la página de | dicho huerto | Escenario: Pincho en el enlace del último recurso mencionado Dado que tenemos un huerto llamado "Huerto One" diff --git a/features/es_ES/cuando-visito-una-pagina.feature b/features/es_ES/cuando-visito-una-pagina.feature index 2e9906d..f853d92 100644 --- a/features/es_ES/cuando-visito-una-pagina.feature +++ b/features/es_ES/cuando-visito-una-pagina.feature @@ -191,6 +191,17 @@ Característica: Solicitud de una página ("cuando visito" o "dado que estoy en" Entonces debo ver la etiqueta H1 con el valor "Página de huerto" Y debo ver la etiqueta H2 con el valor "Esplendoroso" + Escenario: Solicitud de la URL asociada al último recurso definido de un modelo determinado (desde Given) + ######################################################################## + # Patrón: + # Dado que visito la página de dicha lechuga + # + ######################################################################## + Dado que tenemos un huerto "Esplendoroso" + Y que visito la página de dicha huerta + Entonces debo ver la etiqueta H1 con el valor "Página de huerto" + Y debo ver la etiqueta H2 con el valor "Esplendoroso" + Escenario: Solicitud de la URL asociada al último recurso definido ######################################################################## # Patrón: diff --git a/features/es_ES/deberia-estar-en-una-pagina.feature b/features/es_ES/deberia-estar-en-una-pagina.feature index 42c4527..068f6cb 100644 --- a/features/es_ES/deberia-estar-en-una-pagina.feature +++ b/features/es_ES/deberia-estar-en-una-pagina.feature @@ -70,7 +70,11 @@ Característica: Debería encontrarme en una página de mi sitio Dado que tenemos dos huertos "Esplendoroso y Mermada" Cuando visito la página del huerto "Esplendoroso" Entonces debo estar en la página de la huerta "Esplendoroso" - Y estoy en la página de la huerta "Mermada" + + Escenario: Estoy en la página asociada al último recurso mencionado de un modelo concreto + Dado que tenemos dos huertos "Esplendoroso y Mermada" + Cuando visito la página del huerto "Esplendoroso" + Entonces debo estar en la página de dicho huerto Escenario: Debería estar en la página de un recurso que ha sido mencionado Dado que tenemos un huerto "Esplendoroso" diff --git a/features/es_ES/veo-un-enlace.feature b/features/es_ES/veo-un-enlace.feature index c3adea1..4c0fd49 100644 --- a/features/es_ES/veo-un-enlace.feature +++ b/features/es_ES/veo-un-enlace.feature @@ -68,6 +68,11 @@ Característica: Comprobamos la existencia de un enlace en la página actual Cuando visito la página de huertos Entonces debería ver un enlace a la página del huerto "Regadío Número 1" + Escenario: Veo un enlace a la página del último rescurso mencionado de un modelo + Dado que tenemos un huerto "Regadío Número 1" + Cuando visito /orchards + Entonces debería ver un enlace a la página de dicho huerto + Escenario: Veo un enlace a la página de un recurso anteriormente mencionado Dado que tenemos un huerto "Regadío Número 1" Cuando visito /orchards diff --git a/features/step_definitions/es_ES.rb b/features/step_definitions/es_ES.rb index c53925e..cb384dc 100644 --- a/features/step_definitions/es_ES.rb +++ b/features/step_definitions/es_ES.rb @@ -90,12 +90,6 @@ def strftime(format) }, /^la página de (?:identificación|login)/i => lambda { MundoPepino.world.new_session_path - }, - # the fancy one: specific resource page - /^la página de(?:l| la) (.+) ["'](.+)['"]$/ => lambda {|modelo, nombre| - if model = modelo.to_model - MundoPepino.world.send "#{model.name.underscore}_path", model.find_by_name(nombre) - end } } end diff --git a/lib/mundo_pepino/es_ES/mappings.rb b/lib/mundo_pepino/es_ES/mappings.rb index 17fc54b..0bd500c 100644 --- a/lib/mundo_pepino/es_ES/mappings.rb +++ b/lib/mundo_pepino/es_ES/mappings.rb @@ -57,6 +57,7 @@ def language_specific_mappings /^(?:#{_la_pagina_}|#{_el_enlace_}) de(?:l| la| dich[oa]) (.+?)(?: ['"](.+)["'])?$/i => lambda{|modelo, nombre| if resource = MundoPepino.world.last_mentioned_of(modelo, nombre) + MundoPepino.world.pile_up resource MundoPepino.world.send "#{resource.class.name.underscore}_path", resource else raise MundoPepino::ResourceNotFound.new("model #{modelo}"+(nombre ? ", name #{nombre}":'')) @@ -74,6 +75,7 @@ def language_specific_mappings MundoPepino.world.last_mentioned_called(nombre.to_unquoted) end if resource + MundoPepino.world.pile_up resource MundoPepino.world.send "#{action}_#{resource.mr_singular}_path", resource else MundoPepino::ResourceNotFound.new("model #{modelo}, name #{nombre}")