package pubsub

// func TestAddTopic(t *testing.T) {
// 	q := NewEventBus()
// 	err := q.AddTopic("kek", make(<-chan coretypes.ResultEvent))
// 	require.NoError(t, err)

// 	err = q.AddTopic("lol", make(<-chan coretypes.ResultEvent))
// 	require.NoError(t, err)

// 	err = q.AddTopic("lol", make(<-chan coretypes.ResultEvent))
// 	require.Error(t, err)

// 	require.EqualValues(t, []string{"kek", "lol"}, q.Topics())
// }

// func TestSubscribe(t *testing.T) {
// 	q := NewEventBus()
// 	kekSrc := make(chan coretypes.ResultEvent)
// 	q.AddTopic("kek", kekSrc)

// 	lolSrc := make(chan coretypes.ResultEvent)
// 	q.AddTopic("lol", lolSrc)

// 	kekSubC, err := q.Subscribe("kek")
// 	require.NoError(t, err)

// 	lolSubC, err := q.Subscribe("lol")
// 	require.NoError(t, err)

// 	lol2SubC, err := q.Subscribe("lol")
// 	require.NoError(t, err)

// 	wg := new(sync.WaitGroup)
// 	wg.Add(4)

// 	go func() {
// 		defer wg.Done()
// 		msg := <-kekSubC
// 		log.Println("kek:", msg)
// 		require.EqualValues(t, 1, msg)
// 	}()

// 	go func() {
// 		defer wg.Done()
// 		msg := <-lolSubC
// 		log.Println("lol:", msg)
// 		require.EqualValues(t, 1, msg)
// 	}()

// 	go func() {
// 		defer wg.Done()
// 		msg := <-lol2SubC
// 		log.Println("lol2:", msg)
// 		require.EqualValues(t, 1, msg)
// 	}()

// 	go func() {
// 		defer wg.Done()

// 		time.Sleep(time.Second)

// 		close(kekSrc)
// 		close(lolSrc)
// 	}()

// 	wg.Wait()
// 	time.Sleep(time.Second)
// }
