• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kiva / ui / 14202786974

01 Apr 2025 06:04PM UTC coverage: 48.772% (-0.006%) from 48.778%
14202786974

Pull #5895

github

web-flow
Merge 6d5176de4 into 89b09d666
Pull Request #5895: fix: atb position on resize

1568 of 3372 branches covered (46.5%)

Branch coverage included in aggregate %.

2344 of 4649 relevant lines covered (50.42%)

290.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

8.6
/src/router/routes.js
1
export default [
2
        {
3
                path: '/homepage-classic',
4
                redirect: '/',
5
        },
6
        { path: '/15', component: () => import('#src/pages/15Years/15Years') },
×
7
        {
8
                path: '/auto-deposit',
9
                component: () => import('#src/pages/AutoDeposit/AutoDepositLandingPage'),
×
10
        },
11
        {
12
                path: '/auto-deposit/thanks',
13
                component: () => import('#src/pages/AutoDeposit/AutoDepositThanksPage'),
×
14
                meta: {
15
                        activeLoginRequired: true,
16
                        excludeFromStaticSitemap: true,
17
                }
18
        },
19
        {
20
                path: '/build',
21
                component: () => import('#src/pages/Build/BuildPage'),
×
22
        },
23
        {
24
                path: '/build/code-of-conduct',
25
                component: () => import('#src/pages/Build/CodeOfConductPage'),
×
26
        },
27
        {
28
                path: '/build/data-snapshots',
29
                component: () => import('#src/pages/Build/DataPage'),
×
30
        },
31
        {
32
                path: '/build/docs',
33
                component: () => import('#src/pages/Build/DocsPage'),
×
34
        },
35
        {
36
                path: '/build/getting-started',
37
                component: () => import('#src/pages/Build/GettingStartedPage'),
×
38
        },
39
        {
40
                path: '/build/research',
41
                component: () => import('#src/pages/Build/Research'),
×
42
        },
43
        {
44
                path: '/build/terms-of-service',
45
                component: () => import('#src/pages/Build/TermsOfService'),
×
46
        },
47
        {
48
                path: '/categories',
49
                component: () => import('#src/pages/Categories/CategoriesPage')
×
50
        },
51
        {
52
                path: '/categories-beta',
53
                redirect: '/categories'
54
        },
55
        {
56
                path: '/cc/:dynamicRoute',
57
                component: () => import('#src/pages/LandingPages/CorporateCampaign/CCLandingPage'),
×
58
                meta: {
59
                        excludeFromStaticSitemap: true,
60
                        unbouncePopUp: true,
61
                },
62
                props: route => ({
×
63
                        dynamicRoute: route.params.dynamicRoute,
64
                        formComplete: route.query.formComplete,
65
                        upc: route.query.upc,
66
                        promoCode: route.query.promoCode,
67
                        lendingReward: route.query.lendingReward
68
                })
69
        },
70
        {
71
                path: '/checkout',
72
                component: () => import('#src/pages/Checkout/CheckoutPage'),
×
73
                meta: {
74
                        excludeFromStaticSitemap: true,
75
                }
76
        },
77
        {
78
                path: '/checkout/post-purchase',
79
                component: () => import('#src/pages/Checkout/PostPurchase'),
×
80
                meta: {
81
                        excludeFromStaticSitemap: true,
82
                }
83
        },
84
        {
85
                path: '/checkout/thanks',
86
                component: () => import('#src/pages/Thanks/ThanksPage'),
×
87
                meta: {
88
                        excludeFromStaticSitemap: true,
89
                        unbouncePopUp: true,
90
                }
91
        },
92
        {
93
                path: '/confirm-instant-donation/:token/:amount',
94
                component: () => import('#src/pages/InstantActions/ConfirmInstantDonation'),
×
95
                meta: {
96
                        excludeFromStaticSitemap: true,
97
                },
98
                props: route => ({
×
99
                        token: route.params.token,
100
                        amount: route.params.amount
101
                })
102
        },
103
        {
104
                path: '/covid19response',
105
                redirect: '/monthlygood'
106
        },
107
        {
108
                path: '/error',
109
                component: () => import('#src/pages/Error'),
×
110
                meta: {
111
                        excludeFromStaticSitemap: true,
112
                }
113
        },
114
        {
115
                path: '/funded/:id',
116
                redirect: '/lend/:id'
117
        },
118
        {
119
                path: '/get-started',
120
                component: () => import('#src/pages/GetStarted/GetStarted'),
×
121
                children: [
122
                        {
123
                                path: '',
124
                                component: () => import('#src/pages/GetStarted/GetStartedCauses'),
×
125
                                meta: {
126
                                        excludeFromStaticSitemap: true,
127
                                }
128
                        },
129
                        {
130
                                path: 'places',
131
                                component: () => import('#src/pages/GetStarted/GetStartedPlaces'),
×
132
                                meta: {
133
                                        excludeFromStaticSitemap: true,
134
                                }
135
                        },
136
                        {
137
                                path: 'results',
138
                                component: () => import('#src/pages/GetStarted/GetStartedResults'),
×
139
                                meta: {
140
                                        excludeFromStaticSitemap: true,
141
                                }
142
                        },
143
                ]
144
        },
145
        {
146

147
                path: '/instant-donation-thanks/:result',
148
                component: () => import('#src/pages/InstantActions/InstantDonationThanks'),
×
149
                meta: {
150
                        excludeFromStaticSitemap: true,
151
                },
152
                props: route => ({
×
153
                        result: route.params.result,
154
                })
155
        },
156
        {
157
                path: '/instant-lending-error',
158
                component: () => import('#src/pages/InstantActions/InstantLendingError'),
×
159
                meta: {
160
                        excludeFromStaticSitemap: true,
161
                }
162
        },
163
        {
164
                path: '/join-team',
165
                component: () => import('#src/pages/LoginAndRegister/JoinTeam'),
×
166
                meta: {
167
                        excludeFromStaticSitemap: true,
168
                },
169
        },
170
        {
171
                path: '/legal',
172
                component: () => import('#src/pages/Legal/Legal'),
×
173
                children: [
174
                        {
175
                                path: 'promo-terms',
176
                                component: () => import('#src/pages/Legal/PromoTermsOfUse')
×
177
                        },
178
                        {
179
                                path: 'terms',
180
                                component: () => import('#src/pages/Legal/TermsOfUse')
×
181
                        },
182
                ]
183
        },
184
        {
185
                path: '/teams',
186
                component: () => import('#src/pages/LendingTeams/LendingTeams')
×
187
        },
188
        {
189
                path: '/lend-by-category/loans-to-women',
190
                redirect: '/lend-by-category/women'
191
        },
192
        {
193
                path: '/lend-by-category/loans-for-education',
194
                redirect: '/lend-by-category/education'
195
        },
196
        {
197
                path: '/lend-by-category/1-billion-in-change',
198
                redirect: '/lend-by-category'
199
        },
200
        {
201
                path: '/lend-by-category/arts-loans',
202
                redirect: '/lend-by-category/arts',
203
        },
204
        {
205
                path: '/lend-by-category/choose-a-woman-borrower',
206
                redirect: '/lend-by-category/women',
207
        },
208
        {
209
                path: '/lend-by-category/eco-friendly-loans',
210
                redirect: '/lend-by-category/eco-friendly',
211
        },
212
        {
213
                path: '/lend-by-category/ecofriendly-loans',
214
                redirect: '/lend-by-category/eco-friendly',
215
        },
216
        {
217
                path: '/lend-by-category/flash-match',
218
                redirect: '/lend-by-category',
219
        },
220
        {
221
                path: '/lend-by-category/food-loans',
222
                redirect: '/lend-by-category/food',
223
        },
224
        {
225
                path: '/lend-by-category/group-loans',
226
                redirect: '/lend-by-category/groups',
227
        },
228
        {
229
                path: '/lend-by-category/hitachi-employees-helping-c-o-v-i-d-impacted-businesses',
230
                redirect: '/cc/hitachi',
231
        },
232
        {
233
                path: '/lend-by-category/hitachi-employees-helping-to-ignite-a-dream',
234
                redirect: '/cc/hitachi',
235
        },
236
        {
237
                path: '/lend-by-category/hitachis-c-o-v-i-d-19-response',
238
                redirect: '/cc/hitachi',
239
        },
240
        {
241
                path: '/lend-by-category/human-flow-fund-support-refugees-and-i-d-ps',
242
                redirect: '/lend-by-category/refugees-and-i-d-ps',
243
        },
244
        {
245
                path: '/lend-by-category/i-t-cosmetics-confidence',
246
                redirect: '/itcosmetics',
247
        },
248
        {
249
                path: '/lend-by-category/international-womens-day',
250
                redirect: '/lend-by-category/women',
251
        },
252
        {
253
                path: '/lend-by-category/loans-for-healthcare',
254
                redirect: '/lend-by-category/health',
255
        },
256
        {
257
                path: '/lend-by-category/loans-for-livestock',
258
                redirect: '/lend-by-category/livestock',
259
        },
260
        {
261
                path: '/lend-by-category/loans-for-retail-businesses',
262
                redirect: '/lend-by-category/retail-businesses',
263
        },
264
        {
265
                path: '/lend-by-category/loans-for-shelter',
266
                redirect: '/lend-by-category/shelter',
267
        },
268
        {
269
                path: '/lend-by-category/loans-that-are-ending-soon',
270
                redirect: '/lend-by-category/ending-soon',
271
        },
272
        {
273
                path: '/lend-by-category/loans-to-artisans',
274
                redirect: '/lend-by-category/arts',
275
        },
276
        {
277
                path: '/lend-by-category/loans-to-single-parents',
278
                redirect: '/lend-by-category/single-parents',
279
        },
280
        {
281
                path: '/lend-by-category/recommended-by-lend-by-categoryers',
282
                redirect: '/lend-by-category/recommended-by-lenders',
283
        },
284
        {
285
                path: '/lend-by-category/retail-loans',
286
                redirect: '/lend-by-category/retail-businesses',
287
        },
288
        {
289
                path: '/lend-by-category/super-power-a-woman-on-kiva',
290
                redirect: '/lend-by-category/women',
291
        },
292
        {
293
                path: '/lend-by-category/world-refugee-day',
294
                redirect: '/lend-by-category/refugees-and-i-d-ps',
295
        },
296
        {
297
                path: '/lend-by-category/blackrock',
298
                redirect: '/lend-by-category',
299
        },
300
        {
301
                path: '/lend-by-category',
302
                component: () => import('#src/pages/LoanFinding/LoanFinding'),
×
303
                meta: {
304
                        unbounceEmailCapture: true,
305
                },
306
        },
307
        {
308
                path: '/lend-by-category/recommended-by-lenders',
309
                component: () => import('#src/pages/Lend/LoanChannelCategoryPageRecommendedByLenders'),
×
310
                meta: {
311
                        excludeFromStaticSitemap: true,
312
                        unbounceEmailCapture: true,
313
                        unbouncePopUp: true,
314
                },
315
        },
316
        {
317
                path: '/lend-by-category/:category',
318
                component: () => import('#src/pages/Lend/LoanChannelCategoryPage'),
×
319
                meta: {
320
                        excludeFromStaticSitemap: true,
321
                        unbounceEmailCapture: true,
322
                        unbouncePopUp: true,
323
                },
324
        },
325
        {
326
                path: '/lend-beta/:id',
327
                redirect: '/lend/:id'
328
        },
329
        {
330
                path: '/lend/saved-search',
331
                component: () => import('#src/pages/Settings/SavedSearch'),
×
332
                meta: {
333
                        authenticationRequired: true,
334
                        excludeFromStaticSitemap: true,
335
                }
336
        },
337
        {
338
                path: '/lending-home',
339
                redirect: '/lend-by-category',
340
        },
341
        {
342
                name: 'lenderProfile',
343
                path: '/lender/:publicId',
344
                component: () => import('#src/pages/LenderProfile/LenderProfile'),
×
345
                meta: {
346
                        excludeFromStaticSitemap: true,
347
                        unbounceEmailCapture: true,
348
                        unbouncePopUp: true,
349
                }
350
        },
351
        {
352
                name: 'borrowerProfile',
353
                path: '/lend/:id(\\d+)',
354
                component: () => import('#src/pages/BorrowerProfile/BorrowerProfile'),
×
355
                meta: {
356
                        excludeFromStaticSitemap: true,
357
                        unbounceEmailCapture: true,
358
                        unbouncePopUp: true,
359
                }
360
        },
361
        {
362
                name: 'lend-filter',
363
                path: '/lend/filter',
364
                component: () => import('#src/pages/Lend/LoanSearchPage'),
×
365
                meta: {
366
                        unbounceEmailCapture: true,
367
                },
368
        },
369
        {
370
                name: 'filter-alpha',
371
                path: '/lend/filter-alpha',
372
                redirect: '/lend/filter'
373
        },
374
        {
375
                path: '/lend/:category',
376
                redirect: '/lend-by-category/:category'
377
        },
378
        {
379
                path: '/lp/own-the-change-gender-equality',
380
                redirect: '/gender-equality'
381
        },
382
        {
383
                path: '/lp/support-refugees',
384
                redirect: '/refugees'
385
        },
386
        // Preserved for cms-page-server rollout, will remove after validation
387
        /*
388
        {
389
                path: '/lp/:dynamicRoute',
390
                component: () => import('#src/pages/ContentfulPage'),
391
                meta: {
392
                        contentfulPage: route => `lp/${route.params.dynamicRoute}`,
393
                        excludeFromStaticSitemap: true,
394
                        unbouncePopUp: true,
395
                },
396
        },
397
        */
398
        {
399
                path: '/hp/:dynamicRoute',
400
                component: () => import('#src/pages/ContentfulPage'),
×
401
                meta: {
402
                        contentfulPage: route => `hp/${route.params.dynamicRoute}`,
×
403
                        excludeFromStaticSitemap: true,
404
                        unbouncePopUp: true,
405
                },
406
        },
407
        {
408
                path: '/monthlygood',
409
                component: () => import('#src/pages/MonthlyGood/MonthlyGoodLandingPage'),
×
410
                props: route => ({ category: route.query.category }),
×
411
                meta: {
412
                        unbounceEmailCapture: true,
413
                },
414
        },
415
        {
416
                path: '/monthlygood/setup',
417
                component: () => import('#src/pages/MonthlyGood/MonthlyGoodSetupPage'),
×
418
                meta: {
419
                        excludeFromStaticSitemap: true,
420
                },
421
                props: route => ({
×
422
                        amount: Number(route.query.amount),
423
                        category: route.query.category,
424
                        source: route.query.source,
425
                        nextmonth: route.query.nextmonth === 'true',
426
                        initDonation: Number(route.query.initDonation),
427
                        day: Number(route.query.day)
428
                }),
429
        },
430
        {
431
                path: '/monthlygood/thanks',
432
                component: () => import('#src/pages/MonthlyGood/MonthlyGoodThanksPage'),
×
433
                props: route => ({
×
434
                        source: route.query.source,
435
                        paymentType: route.query.paymentType,
436
                }),
437
                meta: {
438
                        activeLoginRequired: true,
439
                        excludeFromStaticSitemap: true,
440
                }
441
        },
442
        {
443
                path: '/portfolio',
444
                component: () => import('#src/pages/Portfolio/ImpactDashboard/ImpactDashboardPage'),
×
445
                meta: {
446
                        authenticationRequired: true,
447
                        excludeFromStaticSitemap: true,
448
                }
449
        },
450
        {
451
                path: '/portfolio/lending-stats',
452
                component: () => import('#src/pages/Portfolio/LendingStats/LendingStatsPage'),
×
453
                meta: {
454
                        authenticationRequired: true,
455
                        excludeFromStaticSitemap: true,
456
                }
457
        },
458
        {
459
                path: '/portfolio/loans-beta',
460
                component: () => import('#src/pages/Portfolio/Loans/LoansPage'),
×
461
                meta: {
462
                        authenticationRequired: true,
463
                        excludeFromStaticSitemap: true,
464
                }
465
        },
466
        {
467
                path: '/portfolio/donations-beta',
468
                component: () => import('#src/pages/Portfolio/Donations/DonationsPage'),
×
469
                meta: {
470
                        authenticationRequired: true,
471
                        excludeFromStaticSitemap: true,
472
                }
473
        },
474
        {
475
                path: '/possibility',
476
                component: () => import('#src/pages/Possibility/Possibility'),
×
477
                children: [
478
                        {
479
                                path: 'giving-tuesday',
480
                                component: () => import('#src/pages/Possibility/GivingTuesday')
×
481
                        },
482
                        {
483
                                path: '12-days-of-lending',
484
                                component: () => import('#src/pages/Possibility/12DaysOfLending')
×
485
                        },
486
                        {
487
                                path: 'year-end',
488
                                component: () => import('#src/pages/Possibility/YearEnd')
×
489
                        },
490
                ]
491
        },
492
        {
493
                path: '/process-browser-auth',
494
                component: () => import('#src/pages/ProcessBrowserAuth'),
×
495
                meta: {
496
                        excludeFromStaticSitemap: true,
497
                }
498
        },
499
        {
500
                path: '/process-instant-lending/:loanId/:lendAmount',
501
                component: () => import('#src/pages/InstantActions/ProcessInstantLending'),
×
502
                meta: {
503
                        excludeFromStaticSitemap: true,
504
                },
505
                props: route => ({
×
506
                        loanId: Number(route.params.loanId),
507
                        lendAmount: Number(route.params.lendAmount)
508
                }),
509
        },
510
        {
511
                path: '/process-join-team',
512
                component: () => import('#src/pages/ProcessJoinTeam'),
×
513
                meta: {
514
                        excludeFromStaticSitemap: true,
515
                        authenticationRequired: true,
516
                },
517
                props: route => ({
×
518
                        doneUrl: route.query.doneUrl,
519
                        teamRecruitmentId: Number(route.query.teamRecruitmentId),
520
                        teamPublicId: route.query.teamPublicId,
521
                        promoId: Number(route.query.promoId),
522
                        inviter: route.query.inviter
523
                })
524
        },
525
        {
526
                path: '/register/social',
527
                component: () => import('#src/pages/LoginAndRegister/RegisterSocial'),
×
528
                meta: {
529
                        excludeFromStaticSitemap: true,
530
                },
531
                props: route => ({
×
532
                        partnerContentId: route.query.partnerContentId,
533
                }),
534
                beforeEnter(to, from, next) {
535
                        // Redirect to error page if state parameter is missing
536
                        const { state } = to.query ?? {};
9✔
537
                        if (!state) {
9✔
538
                                next('/error');
5✔
539
                        } else {
540
                                next();
4✔
541
                        }
542
                },
543
        },
544
        {
545
                path: '/register/guest',
546
                component: () => import('#src/pages/LoginAndRegister/GuestAccountClaim'),
×
547
                meta: {
548
                        excludeFromStaticSitemap: true,
549
                }
550
        },
551
        {
552
                path: '/register/guest-redirect',
553
                component: () => import('#src/pages/LoginAndRegister/GuestAccountRedirect'),
×
554
                meta: {
555
                        excludeFromStaticSitemap: true,
556
                }
557
        },
558
        {
559
                path: '/settings',
560
                component: () => import('#src/pages/Settings/SettingsPage'),
×
561
                meta: {
562
                        excludeFromStaticSitemap: true,
563
                        authenticationRequired: true,
564
                }
565
        },
566
        {
567
                path: '/settings/autolending',
568
                component: () => import('#src/pages/Autolending/AutolendingPage'),
×
569
                meta: {
570
                        excludeFromStaticSitemap: true,
571
                },
572
                children: [
573
                        {
574
                                path: '',
575
                                component: () => import('#src/pages/Autolending/AutolendingSettingsPage'),
×
576
                                meta: {
577
                                        activeLoginRequired: true,
578
                                }
579
                        },
580
                        {
581
                                path: ':action',
582
                                component: () => import('#src/pages/Autolending/AutolendingMessagingPage'),
×
583
                                props: route => ({
×
584
                                        success: route.query.success === 'true',
585
                                        action: route.params.action,
586
                                        days: Number(route.query.days)
587
                                })
588
                        },
589
                ],
590

591
        },
592
        {
593
                path: '/settings/email',
594
                component: () => import('#src/pages/Settings/EmailSettings'),
×
595
                meta: {
596
                        authenticationRequired: true,
597
                        excludeFromStaticSitemap: true,
598
                },
599
        },
600
        {
601
                path: '/settings/payments',
602
                component: () => import('#src/pages/Settings/PaymentSettings'),
×
603
                meta: {
604
                        activeLoginRequired: true,
605
                        excludeFromStaticSitemap: true,
606
                        mfaRequired: true,
607
                        recentLoginRequired: true,
608
                },
609
        },
610
        {
611
                path: '/settings/security',
612
                component: () => import('#src/pages/Settings/SecuritySettings'),
×
613
                meta: {
614
                        excludeFromStaticSitemap: true,
615
                        recentLoginRequired: true,
616
                        mfaRequired: true,
617
                        process: 'managing your security settings',
618
                },
619
        },
620
        {
621
                path: '/settings/security/mfa',
622
                component: () => import('#src/pages/Settings/TwoStepVerificationPage'),
×
623
                meta: {
624
                        excludeFromStaticSitemap: true,
625
                        recentLoginRequired: true,
626
                        mfaRequired: true,
627
                        process: 'managing your 2-step verification settings',
628
                },
629
                children: [
630
                        {
631
                                path: 'app',
632
                                props: route => ({
×
633
                                        first: route.query.first === 'true'
634
                                }),
635
                                component: () => import('#src/components/Settings/AppAuthentication'),
×
636
                        },
637
                        {
638
                                path: 'phone',
639
                                props: route => ({
×
640
                                        first: route.query.first === 'true'
641
                                }),
642
                                component: () => import('#src/components/Settings/PhoneAuthentication'),
×
643
                        },
644
                ],
645
        },
646
        {
647
                path: '/settings/subscriptions',
648
                component: () => import('#src/pages/Settings/SubscriptionsSettings'),
×
649
                meta: {
650
                        activeLoginRequired: true,
651
                        excludeFromStaticSitemap: true,
652
                }
653
        },
654
        {
655
                path: '/start-verification',
656
                component: () => import('#src/pages/StartVerification'),
×
657
                meta: {
658
                        activeLoginRequired: true,
659
                        excludeFromStaticSitemap: true,
660
                }
661
        },
662
        {
663
                path: '/styleguide',
664
                component: () => import('#src/pages/StyleGuide'),
×
665
        },
666
        {
667
                path: '/styleguide/*',
668
                redirect: '/styleguide',
669
        },
670
        {
671
                path: '/ui-site-map',
672
                component: () => import('#src/pages/UiSiteMap/UiSiteMapPage'),
×
673
                meta: {
674
                        excludeFromStaticSitemap: true,
675
                }
676
        },
677
        {
678
                path: '/UI_REVISION',
679
                component: () => import('#src/pages/UiRevision'),
×
680
                meta: {
681
                        excludeFromStaticSitemap: true,
682
                }
683
        },
684
        {
685
                path: '/ub/:unbouncePath',
686
                component: () => import('#src/pages/LandingPages/Unbounce/IFrameEmbed'),
×
687
                props: route => ({
×
688
                        unbouncePath: route.params.unbouncePath,
689
                }),
690
                meta: {
691
                        excludeFromStaticSitemap: true,
692
                }
693
        },
694
        // These are Demo Pages
695
        {
696
                path: '/lend-vue',
697
                component: () => import('#src/pages/Lend/LendPage'),
×
698
                meta: {
699
                        excludeFromStaticSitemap: true,
700
                }
701
        },
702
        // Catch all route
703
        {
704
                path: '/:pathMatch(.*)*',
705
                component: () => import('#src/pages/NotFound'),
×
706
                meta: {
707
                        excludeFromStaticSitemap: true,
708
                }
709
        },
710
];
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc