1- import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest' ;
1+ import { toast } from 'svoast' ;
2+ import { afterEach , describe , expect , it , vi } from 'vitest' ;
23import { shareLink } from '../link.service.js' ;
34
4- describe ( 'wishlist / link service' , ( ) => {
5- beforeEach ( ( ) => {
6- vi . useFakeTimers ( ) ;
7- } ) ;
5+ vi . mock ( 'svoast' ) ;
86
9- afterEach ( async ( ) => {
10- await vi . runAllTimersAsync ( ) ;
11- vi . useRealTimers ( ) ;
7+ describe ( 'wishlist / link service' , ( ) => {
8+ afterEach ( ( ) => {
129 vi . clearAllMocks ( ) ;
1310 } ) ;
1411
1512 describe ( 'link to bot' , ( ) => {
1613 it ( 'should share' , async ( ) => {
1714 const share = vi . fn ( ) ;
1815 vi . stubGlobal ( 'navigator' , { share } ) ;
19- await shareLink ( { classList : { add : vi . fn ( ) , remove : vi . fn ( ) } } , false , 'hash' ) ;
16+ await shareLink ( false , 'hash' ) ;
2017 expect ( share ) . toHaveBeenCalledWith ( { url : 'https://t.me/wishnibot?start=hash' } ) ;
2118 } ) ;
2219
2320 it ( 'should copy link' , async ( ) => {
2421 const writeText = vi . fn ( ) ;
2522 vi . stubGlobal ( 'navigator' , { share : vi . fn ( ) . mockRejectedValue ( ) , clipboard : { writeText } } ) ;
26- await shareLink ( { classList : { add : vi . fn ( ) , remove : vi . fn ( ) } } , false , 'hash' ) ;
23+ await shareLink ( false , 'hash' ) ;
2724 expect ( writeText ) . toHaveBeenCalledWith ( 'https://t.me/wishnibot?start=hash' ) ;
2825 } ) ;
2926 } ) ;
@@ -32,7 +29,7 @@ describe('wishlist / link service', () => {
3229 it ( 'should share' , async ( ) => {
3330 const share = vi . fn ( ) ;
3431 vi . stubGlobal ( 'navigator' , { share } ) ;
35- await shareLink ( { classList : { add : vi . fn ( ) , remove : vi . fn ( ) } } , true , 'hash' ) ;
32+ await shareLink ( true , 'hash' ) ;
3633 expect (
3734 share ,
3835 ) . toHaveBeenCalledWith (
@@ -43,31 +40,17 @@ describe('wishlist / link service', () => {
4340 it ( 'should copy link' , async ( ) => {
4441 const writeText = vi . fn ( ) ;
4542 vi . stubGlobal ( 'navigator' , { share : vi . fn ( ) . mockRejectedValue ( ) , clipboard : { writeText } } ) ;
46- await shareLink ( { classList : { add : vi . fn ( ) , remove : vi . fn ( ) } } , true , 'hash' ) ;
43+ await shareLink ( true , 'hash' ) ;
4744 expect ( writeText ) . toHaveBeenCalledWith ( 'https://t.me/wishnibot?startgroup=hash' ) ;
4845 } ) ;
4946 } ) ;
5047
51- it ( 'should start animation' , async ( ) => {
52- const add = vi . fn ( ) ;
53- vi . stubGlobal (
54- 'navigator' ,
55- { share : vi . fn ( ) . mockRejectedValue ( ) , clipboard : { writeText : vi . fn ( ) } } ,
56- ) ;
57- await shareLink ( { classList : { add, remove : vi . fn ( ) } } , Math . random ( ) > 0.5 , 'hash' ) ;
58- expect ( add ) . toHaveBeenCalledWith ( 'clicked' , 'relative' ) ;
59- } ) ;
60-
61- it ( 'should clean up' , async ( ) => {
62- let classes ;
63- const add = vi . fn ( ( ...args ) => classes = args ) ;
64- const remove = vi . fn ( ) ;
48+ it ( 'should show toast' , async ( ) => {
6549 vi . stubGlobal (
6650 'navigator' ,
6751 { share : vi . fn ( ) . mockRejectedValue ( ) , clipboard : { writeText : vi . fn ( ) } } ,
6852 ) ;
69- await shareLink ( { classList : { add, remove } } , Math . random ( ) > 0.5 , 'hash' ) ;
70- await vi . runAllTimersAsync ( ) ;
71- expect ( remove ) . toHaveBeenCalledWith ( ...classes ) ;
53+ await shareLink ( Math . random ( ) > 0.5 , 'hash' ) ;
54+ expect ( vi . mocked ( toast . success ) ) . toHaveBeenCalledWith ( 'Скопировано' , { duration : 1000 } ) ;
7255 } ) ;
7356} ) ;
0 commit comments