flights_gui_tests 2.3.40 → 2.3.41
Sign up to get free protection for your applications and to get access to all the features.
- 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|
|