flights_gui_tests 2.3.40 → 2.3.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/features/step_definitions/checkout/multipleoneway_steps.rb +5 -36
- data/features/step_definitions/checkout/verifications_steps.rb +7 -2
- data/features/step_definitions/results/multipleoneway_steps.rb +84 -13
- data/features/support/classes/checkout/multipleoneway_cluster.rb +1 -0
- data/features/support/classes/checkout/new_cluster.rb +16 -6
- data/features/support/classes/price.rb +3 -3
- data/features/support/env.rb +1 -1
- data/features/support/modules/results/multipleoneway.rb +4 -1
- data/features/support/pages/thanks/thanks_page/new_thanks_page.rb +2 -0
- data/features/support/version.rb +1 -1
- data/features/tests/black_list/two_oneway.feature +93 -26
- data/features/tests/black_list/two_oneway_r.feature +11 -9
- data/features/tests/checkout/multipleoneway.feature +94 -0
- data/features/tests/results/multipleoneway.feature +60 -58
- data/flights_gui_tests.gemspec +1 -1
- data/henry-context.yml +744 -626
- metadata +3 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47633e1d9da9f08e3425d0f7116f96f8df62250b
|
|
4
|
+
data.tar.gz: f2635c0bb1cab5641f35849662e6bafa0958724c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 14b9adbd16f1084d7af0932ac05955520dad84343e92f7023390c04c76642055e450e2b1a0a6f8ba171a24a66b3ca3f42a05da9b03b53284e0750027c90b13e3
|
|
7
|
+
data.tar.gz: ab51ca6dc3e6fb4fbab7461eb2a1bd533ff03ce01316e9fd20a9c96b6e912411ad3e531aefbe823824c194852eef7e8231830fca84ca117fcf6079eba2360999
|
|
@@ -1,38 +1,4 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
|
-
Dado(/^un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE roundtrip de cabotaje en '(.*)'$/) do |pais|
|
|
3
|
-
step "como un usuario de '#{pais}'"
|
|
4
|
-
step "ingreso una busqueda 'roundtrip' del tipo 'true'"
|
|
5
|
-
step "realizo la busqueda"
|
|
6
|
-
step "verifico que la pagina no rompa"
|
|
7
|
-
step "espero que termine de cargar la pagina de resultados"
|
|
8
|
-
step "verifico que traiga resultados"
|
|
9
|
-
step "cierro popups"
|
|
10
|
-
end
|
|
11
|
-
Dado(/^un usuario que ingresa a realizar una busqueda de un vuelo LASTMINUTE roundtrip de cabotaje en '(.*)'$/) do |pais|
|
|
12
|
-
step "como un usuario de '#{pais}'"
|
|
13
|
-
step "ingreso una busqueda 'roundtrip' del tipo 'true'"
|
|
14
|
-
step "con fecha 'hoy' y estadia '1 semana'"
|
|
15
|
-
step "realizo la busqueda"
|
|
16
|
-
step "verifico que la pagina no rompa"
|
|
17
|
-
step "espero que termine de cargar la pagina de resultados"
|
|
18
|
-
step "verifico que traiga resultados"
|
|
19
|
-
step "cierro popups"
|
|
20
|
-
end
|
|
21
|
-
Cuando(/selecciono la opcion por tramos/) do
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
Y(/selecciono un vuelo de ida por una aerolinea/) do
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
Y(/un vuelo de vuelta por una aerolinea distinta a la elegida en la ida/) do
|
|
28
|
-
|
|
29
|
-
end
|
|
30
|
-
Y(/^un vuelo de vuelta por una misma aerolinea a la elegida en la ida$/) do
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
Y(/hago click en comprar/) do
|
|
34
|
-
|
|
35
|
-
end
|
|
36
2
|
Y(/completo la compra con TC/) do
|
|
37
3
|
step "cargo los pasajeros"
|
|
38
4
|
step "cargo los datos de la tarjeta en el nuevo formulario"
|
|
@@ -58,13 +24,16 @@ Entonces(/^totem realiza la emision de forma online$/) do
|
|
|
58
24
|
|
|
59
25
|
end
|
|
60
26
|
Cuando(/^totem emite de forma offline$/) do
|
|
61
|
-
|
|
27
|
+
step "verifico el popup de asistencia al viajero"
|
|
28
|
+
step "verifico los datos del vuelo comprado"
|
|
29
|
+
step "verifico los valores del desglose en gracias contra los del checkout"
|
|
62
30
|
end
|
|
63
31
|
Entonces(/^no se visualiza para descargar ningun PDF$/) do
|
|
64
32
|
|
|
65
33
|
end
|
|
66
34
|
Entonces(/^se indica que se enviaran las reservas por mail$/) do
|
|
67
|
-
|
|
35
|
+
@page.mensaje_envio_mail_element.should visible("envio mail")
|
|
36
|
+
@page.mensaje_multipleoneway_element.should visible("mensaje multipleoneway")
|
|
68
37
|
end
|
|
69
38
|
Entonces(/^se envia mail al usuario con un PDF con las (\d+) reservas dentro$/) do |arg1|
|
|
70
39
|
|
|
@@ -89,8 +89,13 @@ Y(/^(?:verifico|valido) que los datos cargados sean mostrados correctamente al l
|
|
|
89
89
|
index += 1
|
|
90
90
|
end
|
|
91
91
|
if @page.tipo_de_busqueda!="multipledestinations"
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
if (doc/"div.ticket-right div.dates li.outbound-route span.date").length > 1
|
|
93
|
+
Date.parse_new_result((doc/"div.ticket-right div.dates li.outbound-route span.date").first.inner_text).should equal(@itinerario_checkout.ida.fecha)
|
|
94
|
+
Date.parse_new_result((doc/"div.ticket-right div.dates li.outbound-route span.date").last.inner_text).should equal(@itinerario_checkout.vuelta.fecha) if @page.tipo_de_busqueda=="roundtrip"
|
|
95
|
+
else
|
|
96
|
+
Date.parse_new_result((doc/"div.ticket-right div.dates li.outbound-route span.date").inner_text).should equal(@itinerario_checkout.ida.fecha)
|
|
97
|
+
Date.parse_new_result((doc/"div.ticket-right div.dates li.inbound-route span.date").inner_text).should equal(@itinerario_checkout.vuelta.fecha) if @page.tipo_de_busqueda=="roundtrip"
|
|
98
|
+
end
|
|
94
99
|
else
|
|
95
100
|
begin
|
|
96
101
|
fechas=@itinerario_checkout.fechas
|
|
@@ -1,30 +1,99 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
|
+
Dado(/^un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '(.*)'$/) do |pais|
|
|
3
|
+
step "como un usuario de '#{pais}'"
|
|
4
|
+
step "ingreso una busqueda 'multipleoneway' del tipo 'true'"
|
|
5
|
+
step "realizo la busqueda"
|
|
6
|
+
step "verifico que la pagina no rompa"
|
|
7
|
+
step "espero que termine de cargar la pagina de resultados"
|
|
8
|
+
end
|
|
9
|
+
Dado(/^un usuario que ingresa a realizar una busqueda de un vuelo LASTMINUTE multipleoneway de cabotaje en '(.*)'$/) do |pais|
|
|
10
|
+
step "como un usuario de '#{pais}'"
|
|
11
|
+
step "ingreso una busqueda 'multipleoneway' del tipo 'true'"
|
|
12
|
+
step "con fecha 'hoy' y estadia '1 semana'"
|
|
13
|
+
step "realizo la busqueda"
|
|
14
|
+
step "verifico que la pagina no rompa"
|
|
15
|
+
step "espero que termine de cargar la pagina de resultados"
|
|
16
|
+
end
|
|
17
|
+
Cuando(/selecciono la opcion por tramos/) do
|
|
18
|
+
step "ingreso a resultados con cookie \"showMultipleoneway\" al \"1\""
|
|
19
|
+
step "espero que termine de cargar la pagina ida y vuelta separada"
|
|
20
|
+
step "verifico que traiga resultados"
|
|
21
|
+
step "cierro popups"
|
|
22
|
+
end
|
|
23
|
+
Y(/selecciono un vuelo de ida por una aerolinea/) do
|
|
24
|
+
step "cargo los itinerarios de ida"
|
|
25
|
+
step "elijo la opcion '0' de los itinerarios de ida"
|
|
26
|
+
step "valido que se muestre en la caja de ida"
|
|
27
|
+
end
|
|
28
|
+
Y(/^es posible seleccionar un vuelo de vuelta por una aerolinea distinta a la elegida en la ida$/) do
|
|
29
|
+
@page.caja_ida_seleccionada_element.should visible("caja ida elegida")
|
|
30
|
+
@page.caja_vuelta_no_seleccionada_element.should visible("caja vuelta vacia")
|
|
31
|
+
end
|
|
32
|
+
Y(/^un vuelo de vuelta por una aerolinea distinta a la elegida en la ida$/) do
|
|
33
|
+
step "cargo los itinerarios de vuelta"
|
|
34
|
+
index = 0
|
|
35
|
+
@itinerarios_ida.each_with_index do |itinerario,i|
|
|
36
|
+
index = i
|
|
37
|
+
break if !itinerario.tramo.aerolinea.include?(@itinerario_ida.tramo.aerolinea.first)
|
|
38
|
+
end
|
|
39
|
+
sleep(1)
|
|
40
|
+
step "cierro popups"
|
|
41
|
+
step "elijo la opcion '#{index}' de los itinerarios de vuelta"
|
|
42
|
+
step "valido que se muestre en la caja de vuelta"
|
|
43
|
+
end
|
|
44
|
+
Y(/^un vuelo de vuelta por una misma aerolinea a la elegida en la ida$/) do
|
|
45
|
+
step "cargo los itinerarios de vuelta"
|
|
46
|
+
index = 0
|
|
47
|
+
@itinerarios_ida.each_with_index do |itinerario,i|
|
|
48
|
+
index = i
|
|
49
|
+
break if itinerario.tramo.aerolinea.include?(@itinerario_ida.tramo.aerolinea.first)
|
|
50
|
+
end
|
|
51
|
+
sleep(1)
|
|
52
|
+
step "cierro popups"
|
|
53
|
+
step "elijo la opcion '#{index}' de los itinerarios de vuelta"
|
|
54
|
+
step "valido que se muestre en la caja de vuelta"
|
|
55
|
+
end
|
|
56
|
+
Y(/hago click en comprar/) do
|
|
57
|
+
step "paso al checkout"
|
|
58
|
+
end
|
|
59
|
+
|
|
2
60
|
Entonces(/^se visualiza la opcion de comprar$/) do
|
|
3
|
-
|
|
61
|
+
@page.boton_comprar_element.should visible("botno de compra en multipleoneway")
|
|
4
62
|
end
|
|
5
63
|
|
|
6
64
|
Entonces(/^el precio es la suma de ambos tramos elegidos sin taxes$/) do
|
|
7
|
-
|
|
65
|
+
total = @itinerario_ida.tarifas["total"] + @itinerario_vuelta.tarifas["total"]
|
|
66
|
+
total_caja = Price.new(@page.total_caja_precio_element.text)
|
|
67
|
+
total.should equal(total_caja)
|
|
8
68
|
end
|
|
9
69
|
|
|
10
70
|
Entonces(/^se visualiza el precio final siendo la suma de ambas reservas con los taxes incluidos$/) do
|
|
11
|
-
|
|
71
|
+
total = @itinerario_checkout.tarifas["ida"]["total"] + @itinerario_checkout.tarifas["vuelta"]["total"]
|
|
72
|
+
total.should equal(@itinerario_checkout.tarifas["total"])
|
|
12
73
|
end
|
|
13
74
|
|
|
14
75
|
Entonces(/^se visualizan los dos itinerarios internamente enlazados$/) do
|
|
15
|
-
|
|
76
|
+
sleep(1)
|
|
77
|
+
@itinerario_checkout = @page.datos_itinerario
|
|
16
78
|
end
|
|
17
79
|
|
|
18
80
|
Entonces(/^no se visualiza la posibilidad de ingresar cupones de descuentos$/) do
|
|
19
|
-
|
|
81
|
+
@page.cupones_element.should_not visible("cupones")
|
|
20
82
|
end
|
|
21
83
|
|
|
22
84
|
Entonces(/^en el resultado de busqueda no se visualiza la opcion "([^"]*)"$/) do |arg1|
|
|
23
|
-
|
|
85
|
+
if arg1=="por tramos"
|
|
86
|
+
@page.opcion_ida_separada_element.should_not visible("opcion #{arg1}")
|
|
87
|
+
end
|
|
24
88
|
end
|
|
25
89
|
|
|
26
90
|
Entonces(/^es posible ordenar el listado por aerolinea, horario y escalas$/) do
|
|
27
|
-
|
|
91
|
+
@page.ordenamiento_aerolinea_element.should visible("ordenamiento aerolinea")
|
|
92
|
+
@page.ordenamiento_ida_element.should visible("ordenamiento ida")
|
|
93
|
+
@page.ordenamiento_vuelta_element.should visible("ordenamiento vuelta")
|
|
94
|
+
@page.ordenamiento_duracion_element.should visible("ordenamiento duracion")
|
|
95
|
+
@page.ordenamiento_escalas_element.should visible("ordenamiento escalas")
|
|
96
|
+
@page.ordenamiento_precio_element.should visible("ordenamiento precio")
|
|
28
97
|
end
|
|
29
98
|
|
|
30
99
|
Entonces(/^elijo la opcion ida y vuelta separada$/) do
|
|
@@ -63,21 +132,23 @@ Entonces(/^valido los itinerarios de vuelta$/) do
|
|
|
63
132
|
end
|
|
64
133
|
end
|
|
65
134
|
|
|
66
|
-
Cuando(/^elijo
|
|
67
|
-
@page.elegir(
|
|
135
|
+
Cuando(/^elijo la opcion '(.*)' de los itinerarios de ida$/) do |index|
|
|
136
|
+
@page.elegir(index)
|
|
137
|
+
@itinerario_ida = @itinerarios_ida[index.to_i]
|
|
68
138
|
end
|
|
69
139
|
|
|
70
|
-
Cuando(/^elijo
|
|
71
|
-
@page.elegir(
|
|
140
|
+
Cuando(/^elijo la opcion '(.*)' de los itinerarios de vuelta$/) do |index|
|
|
141
|
+
@page.elegir(index)
|
|
142
|
+
@itinerario_vuelta = @itinerarios_vuelta[index.to_i]
|
|
72
143
|
end
|
|
73
144
|
|
|
74
145
|
Entonces(/^valido que se muestre en la caja de ida$/) do
|
|
75
|
-
@page.caja_ida_seleccionada_element.when_visible(timeout=
|
|
146
|
+
@page.caja_ida_seleccionada_element.when_visible(timeout=10)
|
|
76
147
|
@page.carga_fecha_ida_separada_element.when_not_visible(timeout=30)
|
|
77
148
|
end
|
|
78
149
|
|
|
79
150
|
Entonces(/^valido que se muestre en la caja de vuelta$/) do
|
|
80
|
-
@page.caja_vuelta_seleccionada_element.when_visible(timeout=
|
|
151
|
+
@page.caja_vuelta_seleccionada_element.when_visible(timeout=10)
|
|
81
152
|
@page.carga_fecha_ida_separada_element.when_not_visible(timeout=30)
|
|
82
153
|
end
|
|
83
154
|
|
|
@@ -23,6 +23,7 @@ module NewCheckout
|
|
|
23
23
|
tarifa_tramo['encargos'] = (html/"li.service_taxes").first ? Price.new((html/"li.service_taxes span.price-currency").first.inner_text.strip.gsub(',','.')) : Price.new("$ 0",true)
|
|
24
24
|
tarifa_tramo['seguros'] = (html/"li.destination_service_insurance").first ? Price.new((html/"li.destination_service_insurance span.price-currency").first.inner_text.strip.gsub(',','.')) : Price.new("$ 0",true)
|
|
25
25
|
tarifa_tramo['descuento'] = (html/"li.payment_discount").first ? Price.new((html/"li.payment_discount span.price-currency span.currency").first.inner_text.strip.gsub(',','.')+" "+((html/"li.payment_discount span.price-currency span.amount").first.inner_text.strip.gsub(/\D/,'').to_i*-1).to_s) : Price.new("$ 0",true)
|
|
26
|
+
tarifa_tramo['total'] = Price.new((html/"li.subtotal span.price-currency").first.inner_text.strip.gsub(',','.'))
|
|
26
27
|
return tarifa_tramo
|
|
27
28
|
end
|
|
28
29
|
|
|
@@ -6,16 +6,26 @@ module NewCheckout
|
|
|
6
6
|
def initialize(itinerario,html,page = 0)
|
|
7
7
|
@fechas = []
|
|
8
8
|
self.cargar_precios((html/"div.prices"))
|
|
9
|
+
multipleoneway(html)
|
|
9
10
|
eval "#{itinerario.downcase}(html)"
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def multipleoneway(html)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
if (html/"div.outbound-route div.segment").length==2
|
|
15
|
+
tramos = cargar_tramos([(html/"div.outbound-route div.segment").first])
|
|
16
|
+
@ida = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
17
|
+
@idas = tramos
|
|
18
|
+
tramos = cargar_tramos([(html/"div.outbound-route div.segment").last])
|
|
19
|
+
@vuelta = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
20
|
+
@vueltas = tramos
|
|
21
|
+
else
|
|
22
|
+
tramos = cargar_tramos((html/"div.outbound-route div.segment"))
|
|
23
|
+
@ida = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
24
|
+
@idas = tramos
|
|
25
|
+
tramos = cargar_tramos((html/"div.inbound-route div.segment"))
|
|
26
|
+
@vuelta = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
27
|
+
@vueltas = tramos
|
|
28
|
+
end
|
|
19
29
|
end
|
|
20
30
|
|
|
21
31
|
def roundtrip(html)
|
|
@@ -45,14 +45,14 @@ class Price
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def +(other)
|
|
48
|
-
|
|
48
|
+
self.same_moneda?(other) ? Price.new("#{self.currency} #{self.value + other.value}",true) : Price.new("U$S #{self.to_dolar.value + other.to_dolar.value}",true)
|
|
49
49
|
end
|
|
50
50
|
def -(other)
|
|
51
|
-
|
|
51
|
+
self.same_moneda?(other) ? Price.new("#{self.currency} #{self.value - other.value}","change") : Price.new("U$S #{self.to_dolar.value - other.to_dolar.value}","change")
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def same_moneda?(other)
|
|
55
|
-
self.currency == other.currency
|
|
55
|
+
self.currency == other.currency
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def zero?
|
data/features/support/env.rb
CHANGED
|
@@ -29,7 +29,10 @@ module Results
|
|
|
29
29
|
li(:caja_vuelta,:css=>".arrival-item")
|
|
30
30
|
li(:caja_ida_seleccionada,:class=>"multipleoneway-selector-item departure-item selected")
|
|
31
31
|
li(:caja_vuelta_seleccionada,:class=>"multipleoneway-selector-item arrival-item selected")
|
|
32
|
+
li(:caja_ida_no_seleccionada,:class=>"multipleoneway-selector-item departure-item current")
|
|
33
|
+
li(:caja_vuelta_no_seleccionada,:class=>"multipleoneway-selector-item arrival-item current")
|
|
32
34
|
li(:caja_precio,:class=>"multipleoneway-selector-item price-item visible")
|
|
35
|
+
element(:total_caja_precio,:span,:css=>".price-item .price-currency")
|
|
33
36
|
|
|
34
37
|
div(:clusters,:id=>"clusters")
|
|
35
38
|
|
|
@@ -55,7 +58,7 @@ module Results
|
|
|
55
58
|
end
|
|
56
59
|
|
|
57
60
|
def elegir(index)
|
|
58
|
-
boton_comprar = itinerarios_elements[index].links(:class,/buy/).select{|boton| boton.present?}
|
|
61
|
+
boton_comprar = itinerarios_elements[index.to_i].links(:class,/buy/).select{|boton| boton.present?}
|
|
59
62
|
boton_comprar.first.click
|
|
60
63
|
end
|
|
61
64
|
|
|
@@ -17,6 +17,8 @@ module Thanks
|
|
|
17
17
|
div(:link_mi_despegar,:id=>"self-service")
|
|
18
18
|
div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
|
|
19
19
|
div(:datos_deposito,:class=>"thanks-reservation-info")
|
|
20
|
+
div(:mensaje_envio_mail,:id=>"booking-details")
|
|
21
|
+
div(:mensaje_multipleoneway,:id=>"multipleoneway-warning")
|
|
20
22
|
p(:mensaje_alerta_cash,:class=>"delay")
|
|
21
23
|
|
|
22
24
|
elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
|
data/features/support/version.rb
CHANGED
|
@@ -3,16 +3,19 @@
|
|
|
3
3
|
Característica: checkout.booking_2_ow
|
|
4
4
|
El test verifica que la compra con la funcionalidad de dos oneway para realizar un roundtrip funcione correctamente y realize las reservas correspondientes.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
#@booking_2_ow
|
|
7
7
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje NO LASTMINUTE del tramo de IDA y del tramo del VUELTA y su correspondiente compra y pago, se realiza la emision de las dos reservas (se espera emision online).
|
|
8
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
8
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
9
9
|
Cuando selecciono la opcion por tramos
|
|
10
10
|
Y selecciono un vuelo de ida por una aerolinea
|
|
11
11
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
12
12
|
Y hago click en comprar
|
|
13
|
+
Entonces verifico que la pagina no rompa
|
|
14
|
+
Y espero que termine de cargar la pagina de checkout
|
|
15
|
+
Y verifico que ingrese al checkout
|
|
13
16
|
Y completo la compra con TC
|
|
14
|
-
Y logro que totem emita la emision online
|
|
15
17
|
Entonces se visualiza la pagina de gracias
|
|
18
|
+
Y logro que totem emita la emision online
|
|
16
19
|
Y se visualiza para descargar 1 pdf con las 2 reservas dentro
|
|
17
20
|
|
|
18
21
|
@br
|
|
@@ -20,16 +23,19 @@ Característica: checkout.booking_2_ow
|
|
|
20
23
|
|pais|
|
|
21
24
|
|BR|
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
#@booking_2_ow
|
|
24
27
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje LASTMINUTE del tramo de IDA y de un vuelo NOLASTMINUTE del tramo del VUELTA y su correspondiente compra y pago, se realiza la emision de las dos reservas (se espera emision online).
|
|
25
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo LASTMINUTE
|
|
28
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
26
29
|
Cuando selecciono la opcion por tramos
|
|
27
30
|
Y selecciono un vuelo de ida por una aerolinea
|
|
28
31
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
29
32
|
Y hago click en comprar
|
|
33
|
+
Entonces verifico que la pagina no rompa
|
|
34
|
+
Y espero que termine de cargar la pagina de checkout
|
|
35
|
+
Y verifico que ingrese al checkout
|
|
30
36
|
Y completo la compra con TC
|
|
31
|
-
Entonces
|
|
32
|
-
Y
|
|
37
|
+
Entonces se visualiza la pagina de gracias
|
|
38
|
+
Y logro que totem emita la emision online
|
|
33
39
|
Y se visualiza para descargar 1 pdf con las 2 reservas dentro
|
|
34
40
|
|
|
35
41
|
@br
|
|
@@ -39,14 +45,17 @@ Característica: checkout.booking_2_ow
|
|
|
39
45
|
|
|
40
46
|
@booking_2_ow
|
|
41
47
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje del tramo de IDA y del tramo del VUELTA y su correspondiente compra y pago, se realiza la emision de las dos reservas (se espera emision offline).
|
|
42
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
48
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
43
49
|
Cuando selecciono la opcion por tramos
|
|
44
50
|
Y selecciono un vuelo de ida por una aerolinea
|
|
45
51
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
46
52
|
Y hago click en comprar
|
|
53
|
+
Entonces verifico que la pagina no rompa
|
|
54
|
+
Y espero que termine de cargar la pagina de checkout
|
|
55
|
+
Y verifico que ingrese al checkout
|
|
47
56
|
Y completo la compra con TC
|
|
48
|
-
Y totem emite de forma offline
|
|
49
57
|
Entonces se visualiza la pagina de gracias
|
|
58
|
+
Y totem emite de forma offline
|
|
50
59
|
Y no se visualiza para descargar ningun PDF
|
|
51
60
|
Y se indica que se enviaran las reservas por mail
|
|
52
61
|
Y se envia mail al usuario con un PDF con las 2 reservas dentro
|
|
@@ -57,17 +66,20 @@ Característica: checkout.booking_2_ow
|
|
|
57
66
|
|BR|
|
|
58
67
|
|
|
59
68
|
|
|
60
|
-
|
|
69
|
+
#@booking_2_ow
|
|
61
70
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje NO LASTMINUTE del tramo de IDA y de un vuelo NO LASTMINUTE del tramo del VUELTA y su correspondiente compra y pago, si totem emite una reserva online y la otra reserva offline, toda la compra utiliza el flujo offline.
|
|
62
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
71
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
63
72
|
Cuando selecciono la opcion por tramos
|
|
64
73
|
Y selecciono un vuelo de ida por una aerolinea
|
|
65
74
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
66
75
|
Y hago click en comprar
|
|
76
|
+
Entonces verifico que la pagina no rompa
|
|
77
|
+
Y espero que termine de cargar la pagina de checkout
|
|
78
|
+
Y verifico que ingrese al checkout
|
|
67
79
|
Y completo la compra con TC
|
|
80
|
+
Entonces se visualiza la pagina de gracias
|
|
68
81
|
Y logro que totem emita la primer reserva de forma online
|
|
69
82
|
Y totem emite la segunda reserva de forma offline
|
|
70
|
-
Entonces se visualiza la pagina de gracias
|
|
71
83
|
Y no se visualiza para descargar ningun PDF
|
|
72
84
|
Y se indica que se enviaran las reservas por mail
|
|
73
85
|
Y se envia mail al usuario con un PDF con las 2 reservas dentro
|
|
@@ -79,13 +91,18 @@ Característica: checkout.booking_2_ow
|
|
|
79
91
|
|
|
80
92
|
@booking_2_ow
|
|
81
93
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje LASTMINUTE del tramo de IDA y de un vuelo NOLASTMINUTE del tramo del VUELTA y su correspondiente compra y pago, si la reserva LASTMINUTE no se pudo procesar y la NOLASTMINUTE si, se deberan cancelar ambas.
|
|
82
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
94
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
83
95
|
Cuando selecciono la opcion por tramos
|
|
84
96
|
Y selecciono un vuelo de ida por una aerolinea
|
|
85
97
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
86
98
|
Y hago click en comprar
|
|
99
|
+
Entonces verifico que la pagina no rompa
|
|
100
|
+
Y espero que termine de cargar la pagina de checkout
|
|
101
|
+
Y verifico que ingrese al checkout
|
|
87
102
|
Y completo la compra con TC
|
|
88
|
-
Entonces
|
|
103
|
+
Entonces se visualiza la pagina de gracias
|
|
104
|
+
Y totem emite de forma offline
|
|
105
|
+
Entonces cancelo la reserva en el proveedor
|
|
89
106
|
|
|
90
107
|
|
|
91
108
|
@br
|
|
@@ -93,17 +110,20 @@ Característica: checkout.booking_2_ow
|
|
|
93
110
|
|pais|
|
|
94
111
|
|BR|
|
|
95
112
|
|
|
96
|
-
|
|
113
|
+
#@booking_2_ow
|
|
97
114
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje NO LASTMINUTE del tramo de IDA y de un vuelo NO LASTMINUTE del tramo del VUELTA de la misma aerolinea que no sea roundtrip y su correspondiente compra y pago, si totem emite una reserva online y la otra reserva offline, toda la compra utiliza el flujo offline.
|
|
98
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
115
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
99
116
|
Cuando selecciono la opcion por tramos
|
|
100
117
|
Y selecciono un vuelo de ida por una aerolinea
|
|
101
118
|
Y un vuelo de vuelta por una misma aerolinea a la elegida en la ida
|
|
102
119
|
Y hago click en comprar
|
|
103
|
-
|
|
104
|
-
Y
|
|
105
|
-
Y
|
|
120
|
+
Entonces verifico que la pagina no rompa
|
|
121
|
+
Y espero que termine de cargar la pagina de checkout
|
|
122
|
+
Y verifico que ingrese al checkout
|
|
123
|
+
Y completo la compra con TC
|
|
106
124
|
Entonces se visualiza la pagina de gracias
|
|
125
|
+
Y logro que totem emita la primer reserva de forma online
|
|
126
|
+
Y totem emite la segunda reserva de forma offline
|
|
107
127
|
Y no se visualiza para descargar ningun PDF
|
|
108
128
|
Y se indica que se enviaran las reservas por mail
|
|
109
129
|
Y se envia mail al usuario con un PDF con las 2 reservas dentro
|
|
@@ -113,13 +133,16 @@ Característica: checkout.booking_2_ow
|
|
|
113
133
|
|pais|
|
|
114
134
|
|BR|
|
|
115
135
|
|
|
116
|
-
|
|
136
|
+
#@booking_2_ow
|
|
117
137
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje del tramo de IDA y del tramo del VUELTA y su correspondiente compra, si el pago con TC de la primer reserva da reject, no se avanza al pago de la segunda sino que se vuelve a pedir otra TC para la primer reserva.
|
|
118
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
138
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
119
139
|
Cuando selecciono la opcion por tramos
|
|
120
140
|
Y selecciono un vuelo de ida por una aerolinea
|
|
121
141
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
122
142
|
Y hago click en comprar
|
|
143
|
+
Entonces verifico que la pagina no rompa
|
|
144
|
+
Y espero que termine de cargar la pagina de checkout
|
|
145
|
+
Y verifico que ingrese al checkout
|
|
123
146
|
Y realizo el pago de la primer reserva con TC con resultado reject
|
|
124
147
|
Y no se puede realizar merchant
|
|
125
148
|
Entonces se pide el ingreso de una nueva TC para la primer reserva
|
|
@@ -130,13 +153,16 @@ Característica: checkout.booking_2_ow
|
|
|
130
153
|
|pais|
|
|
131
154
|
|BR|
|
|
132
155
|
|
|
133
|
-
|
|
156
|
+
#@booking_2_ow
|
|
134
157
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje del tramo de IDA y del tramo del VUELTA y su correspondiente compra, si el booking de la primera reserva (IDA) da price jump, se solicita la confirmacion del precio o la eleccion de un nuevo vuelo solo para ese vuelo de IDA.
|
|
135
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
158
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
136
159
|
Cuando selecciono la opcion por tramos
|
|
137
160
|
Y selecciono un vuelo de ida por una aerolinea
|
|
138
161
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
139
162
|
Y hago click en comprar
|
|
163
|
+
Entonces verifico que la pagina no rompa
|
|
164
|
+
Y espero que termine de cargar la pagina de checkout
|
|
165
|
+
Y verifico que ingrese al checkout
|
|
140
166
|
Y el vuelo de ida da price jump
|
|
141
167
|
Entonces se indica que el precio de ida cambio
|
|
142
168
|
Y se solicita la aceptacion del nuevo precio o el cambio del vuelo previamente seleccionado
|
|
@@ -148,13 +174,16 @@ Característica: checkout.booking_2_ow
|
|
|
148
174
|
|pais|
|
|
149
175
|
|BR|
|
|
150
176
|
|
|
151
|
-
|
|
177
|
+
#@booking_2_ow
|
|
152
178
|
Esquema del escenario: al realizar una busqueda de un vuelo de cabotaje del tramo de IDA y del tramo del VUELTA y su correspondiente compra, si el booking de la segunda reserva (IDA) da change flight, se solicita la eleccion de un nuevo vuelo solo para ese vuelo de VUELTA.
|
|
153
|
-
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE
|
|
179
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
154
180
|
Cuando selecciono la opcion por tramos
|
|
155
181
|
Y selecciono un vuelo de ida por una aerolinea
|
|
156
182
|
Y un vuelo de vuelta por una aerolinea distinta a la elegida en la ida
|
|
157
183
|
Y hago click en comprar
|
|
184
|
+
Entonces verifico que la pagina no rompa
|
|
185
|
+
Y espero que termine de cargar la pagina de checkout
|
|
186
|
+
Y verifico que ingrese al checkout
|
|
158
187
|
Y el vuelo de vuelta da change flight
|
|
159
188
|
Entonces se indica que el vuelo de vuelta cambio
|
|
160
189
|
Y se solicita el cambio del vuelo de vuelta previamente seleccionado
|
|
@@ -164,4 +193,42 @@ Característica: checkout.booking_2_ow
|
|
|
164
193
|
@br
|
|
165
194
|
Ejemplos:
|
|
166
195
|
|pais|
|
|
167
|
-
|BR|
|
|
196
|
+
|BR|
|
|
197
|
+
|
|
198
|
+
@booking_2_ow
|
|
199
|
+
Esquema del escenario: Smoke TEST para la opcion de ida y vuelta separada
|
|
200
|
+
Dado un usuario que ingresa a realizar una busqueda de un vuelo NO LASTMINUTE multipleoneway de cabotaje en '<pais>'
|
|
201
|
+
Cuando selecciono la opcion por tramos
|
|
202
|
+
Entonces cargo los itinerarios de ida
|
|
203
|
+
Entonces valido los itinerarios de ida
|
|
204
|
+
Cuando elijo la opcion '0' de los itinerarios de ida
|
|
205
|
+
Entonces valido que se muestre en la caja de ida
|
|
206
|
+
Entonces cargo los itinerarios de vuelta
|
|
207
|
+
Entonces valido los itinerarios de vuelta
|
|
208
|
+
Y elijo la opcion '0' de los itinerarios de vuelta
|
|
209
|
+
Entonces valido que se muestre en la caja de vuelta
|
|
210
|
+
Y hago click en comprar
|
|
211
|
+
Entonces verifico que la pagina no rompa
|
|
212
|
+
Y espero que termine de cargar la pagina de checkout
|
|
213
|
+
Y verifico que ingrese al checkout
|
|
214
|
+
Entonces si existe la opcion de cobertura, elijo "no_chequear" si quiero cobertura
|
|
215
|
+
Y valido los valores del desglose del checkout con multipleoneway
|
|
216
|
+
Y verifico el pixel de Efrontier
|
|
217
|
+
Y verifico el pixel de trackeame en checkout
|
|
218
|
+
Y valido que no se muestre la leyenda de seguro gratis en el desglose
|
|
219
|
+
Y si el site es "AR", verifico el tag de remarketing de facebook
|
|
220
|
+
Entonces si el site no es "CL", verifico que los precios de las cuotas se muestran correctamente
|
|
221
|
+
Y verifico que se muestren la caja de clientes felices
|
|
222
|
+
Y verifico que se muestren las reviews de aerolineas
|
|
223
|
+
Y completo la compra con TC
|
|
224
|
+
Entonces se visualiza la pagina de gracias
|
|
225
|
+
Y totem emite de forma offline
|
|
226
|
+
Y verifico el tag de datalayer
|
|
227
|
+
Y verifico el pixel de Efrontier
|
|
228
|
+
Y verifico el pixel de trackeame en gracias
|
|
229
|
+
Y cancelo la reserva en el proveedor
|
|
230
|
+
|
|
231
|
+
@br
|
|
232
|
+
Ejemplos:
|
|
233
|
+
|pais|
|
|
234
|
+
|BR|
|