@@ -55,7 +55,7 @@ db_transaction {
55
55
my $httpcb_rs = $schema -> resultset(" HttpCallbackToken" );
56
56
57
57
# Mockando um pagamento para simular o callback de compute donation.
58
- ok (
58
+ ok(
59
59
my $payment = $schema -> resultset(" Payment" )-> create(
60
60
{
61
61
donor_id => $donor_id ,
@@ -67,7 +67,7 @@ db_transaction {
67
67
" fake payment" ,
68
68
);
69
69
70
- ok (
70
+ ok(
71
71
my $token = $httpcb_rs -> create_for_action(
72
72
" payment-success-renewal" ,
73
73
{
@@ -84,8 +84,11 @@ db_transaction {
84
84
code => 200,
85
85
;
86
86
87
+ ok( $user_plan -> discard_changes, ' user_plan discard changes' );
88
+ ok( defined ($user_plan -> last_close_at), ' user_plan.last_close_at is defined' );
89
+
87
90
# O jornalista 1 deve receber R$ 13,26.
88
- is (
91
+ is(
89
92
$schema -> resultset(" MoneyTransfer" )-> search(
90
93
{
91
94
journalist_id => $journalist_ids [0],
@@ -98,7 +101,7 @@ db_transaction {
98
101
);
99
102
100
103
# E o jornalista 2 deve receber R$ 8,84.
101
- is (
104
+ is(
102
105
$schema -> resultset(" MoneyTransfer" )-> search(
103
106
{
104
107
journalist_id => $journalist_ids [1],
@@ -109,6 +112,50 @@ db_transaction {
109
112
" 1" ,
110
113
' journalist 2 will receive R$ 8,84' ,
111
114
);
115
+
116
+ # Se houver um novo callback do compute_donations, não deve criar mais nenhuma transferência pois nenhum libre
117
+ # será doado.
118
+ use_ok ' Libre::Worker::BankTeller' ;
119
+ my $worker = new_ok( ' Libre::Worker::BankTeller' , [ schema => $schema , log => Libre-> log ] );
120
+
121
+ is(
122
+ $schema -> resultset(" MoneyTransfer" )-> search( { ' me.transferred' => " false" } )-> count,
123
+ 2,
124
+ " money_transfer count=2" ,
125
+ );
126
+
127
+ ok( $worker -> run_once(), ' run once' );
128
+ ok( $worker -> run_once(), ' run once' );
129
+
130
+ is(
131
+ $schema -> resultset(" MoneyTransfer" )-> search( { ' me.transferred' => " false" } )-> count,
132
+ 0,
133
+ " money_transfer count=0" ,
134
+ );
135
+
136
+ undef $token ;
137
+ ok(
138
+ $token = $httpcb_rs -> create_for_action(
139
+ " payment-success-renewal" ,
140
+ {
141
+ user_id => $donor_id ,
142
+ user_plan_id => $user_plan_id ,
143
+ payment_id => $payment -> id,
144
+ }
145
+ ),
146
+ " fake http callback of fake payment" ,
147
+ );
148
+
149
+ rest_post [ " callback-for-token" , $token ],
150
+ name => " http callback triggered again" ,
151
+ code => 200,
152
+ ;
153
+
154
+ is(
155
+ $schema -> resultset(" MoneyTransfer" )-> search( { ' me.transferred' => " false" } )-> count,
156
+ 0,
157
+ " money_transfer count=0" ,
158
+ );
112
159
};
113
160
114
161
done_testing();
0 commit comments