From bd9386d81c258d3d3f43666d3e25328f68428689 Mon Sep 17 00:00:00 2001 From: Ansh Date: Thu, 2 Mar 2023 10:21:33 -0800 Subject: New onboarding (#241) * delete old onboarding files and code * add custom FollowButton component to Post, FeedItem, & ProfileCard * move building suggested feed into helper lib * show suggested posts/feed if follower list is empty * Update tsconfig.json * add pagination to getting new onboarding * remove unnecessary console log * fix naming, add better null check for combinedCursor * In locally-combined feeds, correctly produce an undefined cursor when out of data * Minor refactors of the suggested posts lib functions * Show 'follow button' style of post meta in certain conditions only * Only show follow btn in posts on the main feed and the discovery feed * Add a welcome notice to the home feed * Tune the timing of when the welcome banner shows or hides * Make the follow button an observer (closes #244) * Update postmeta to keep the follow btn after press until next render * A couple of fixes that ensure consistent welcome screen * Fix lint * Rework the welcome banner * Fix cache invalidation of follows model on user switch * Show welcome banner while loading * Update the home onboarding feed to get top posts from hardcode recommends * Drop unused helper function * Update happy path tests --------- Co-authored-by: Paul Frazee --- __tests__/state/models/onboard.test.ts | 46 ---------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 __tests__/state/models/onboard.test.ts (limited to '__tests__') diff --git a/__tests__/state/models/onboard.test.ts b/__tests__/state/models/onboard.test.ts deleted file mode 100644 index 02ee0feb6..000000000 --- a/__tests__/state/models/onboard.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { - OnboardModel, - OnboardStageOrder, -} from '../../../src/state/models/onboard' - -describe('OnboardModel', () => { - let onboardModel: OnboardModel - - beforeEach(() => { - onboardModel = new OnboardModel() - }) - - afterAll(() => { - jest.clearAllMocks() - }) - - it('should start/stop correctly', () => { - onboardModel.start() - expect(onboardModel.isOnboarding).toBe(true) - onboardModel.stop() - expect(onboardModel.isOnboarding).toBe(false) - }) - - it('should call the next method until it has no more stages', () => { - onboardModel.start() - onboardModel.next() - expect(onboardModel.stage).toBe(OnboardStageOrder[1]) - - onboardModel.next() - expect(onboardModel.isOnboarding).toBe(false) - expect(onboardModel.stage).toBe(OnboardStageOrder[0]) - }) - - it('serialize and hydrate', () => { - const serialized = onboardModel.serialize() - const newModel = new OnboardModel() - newModel.hydrate(serialized) - expect(newModel).toEqual(onboardModel) - - onboardModel.start() - onboardModel.next() - const serialized2 = onboardModel.serialize() - newModel.hydrate(serialized2) - expect(newModel).toEqual(onboardModel) - }) -}) -- cgit 1.4.1