diff --git a/app/screens/more_channels/more_channels.js b/app/screens/more_channels/more_channels.js index 804f3cd5a..e11cff8e1 100644 --- a/app/screens/more_channels/more_channels.js +++ b/app/screens/more_channels/more_channels.js @@ -229,10 +229,10 @@ export default class MoreChannels extends PureComponent { if (isPublic) { this.publicPage += 1; - this.nextPublic = (data && !data.length); + this.nextPublic = data?.length > 0; } else { this.archivedPage += 1; - this.nextArchived = (data && !data.length); + this.nextArchived = data?.length > 0; } this.setState({loading: false}); diff --git a/app/screens/more_channels/more_channels.test.js b/app/screens/more_channels/more_channels.test.js index 9876dcd73..702b7a688 100644 --- a/app/screens/more_channels/more_channels.test.js +++ b/app/screens/more_channels/more_channels.test.js @@ -110,4 +110,54 @@ describe('MoreChannels', () => { instance.searchChannels('archived channel'); expect(wrapper.state('archivedChannels')).toEqual(baseProps.archivedChannels); }); + + test('Allow load more public channels', () => { + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + const instance = wrapper.instance(); + wrapper.setState({typeOfChannels: 'public'}); + instance.loadedChannels({data: ['channel-1', 'channel-2']}); + expect(instance.nextPublic).toBe(true); + }); + + test('Prevent load more public channels', () => { + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + const instance = wrapper.instance(); + wrapper.setState({typeOfChannels: 'public'}); + instance.loadedChannels({data: null}); + expect(instance.nextPublic).toBe(false); + + instance.loadedChannels({data: []}); + expect(instance.nextPublic).toBe(false); + }); + + test('Allow load more archived channels', () => { + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + const instance = wrapper.instance(); + wrapper.setState({typeOfChannels: 'archived'}); + instance.loadedChannels({data: ['archived-1', 'archived-2']}); + expect(instance.nextArchived).toBe(true); + }); + + test('Prevent load more archived channels', () => { + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + const instance = wrapper.instance(); + wrapper.setState({typeOfChannels: 'archived'}); + instance.loadedChannels({data: null}); + expect(instance.nextArchived).toBe(false); + + instance.loadedChannels({data: []}); + expect(instance.nextArchived).toBe(false); + }); });