feat(app): finish onboarding auth flow
This commit is contained in:
@@ -30,7 +30,7 @@ describe('server auth account deletion', () => {
|
||||
));
|
||||
expect(billingAccountDeletes).toHaveLength(1);
|
||||
|
||||
const signupChecks = get.mock.calls.filter(([, sql], params) => (
|
||||
const signupChecks = get.mock.calls.filter(([, sql, params]) => (
|
||||
typeof sql === 'string'
|
||||
&& sql.includes('SELECT id FROM auth_users WHERE LOWER(email)')
|
||||
&& params?.[0] === email
|
||||
|
||||
@@ -17,8 +17,8 @@ describe('server billing timestamp normalization', () => {
|
||||
userId: 'usr_mnjcdwpo_ax9lf68b',
|
||||
plan: 'free',
|
||||
provider: 'revenuecat',
|
||||
cycleStartedAt: new Date('2026-04-01T00:00:00.000Z'),
|
||||
cycleEndsAt: new Date('2026-05-01T00:00:00.000Z'),
|
||||
cycleStartedAt: new Date('2027-04-01T00:00:00.000Z'),
|
||||
cycleEndsAt: new Date('2027-05-01T00:00:00.000Z'),
|
||||
monthlyAllowance: 15,
|
||||
usedThisCycle: 0,
|
||||
topupBalance: 0,
|
||||
@@ -37,8 +37,8 @@ describe('server billing timestamp normalization', () => {
|
||||
expect(upsertCall).toBeTruthy();
|
||||
|
||||
const params = upsertCall[2];
|
||||
expect(params[3]).toBe('2026-04-01T00:00:00.000Z');
|
||||
expect(params[4]).toBe('2026-05-01T00:00:00.000Z');
|
||||
expect(params[3]).toBe('2027-04-01T00:00:00.000Z');
|
||||
expect(params[4]).toBe('2027-05-01T00:00:00.000Z');
|
||||
expect(params[3]).not.toContain('Coordinated Universal Time');
|
||||
expect(params[4]).not.toContain('Coordinated Universal Time');
|
||||
});
|
||||
|
||||
@@ -103,17 +103,17 @@ describe('StorageService', () => {
|
||||
expect(result).toBe('en');
|
||||
});
|
||||
|
||||
it('defaults to de when no language stored', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(null);
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('de');
|
||||
});
|
||||
|
||||
it('defaults to de on error', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockRejectedValue(new Error('fail'));
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('de');
|
||||
});
|
||||
it('defaults to en when no language stored', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(null);
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('en');
|
||||
});
|
||||
|
||||
it('defaults to en on error', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockRejectedValue(new Error('fail'));
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('en');
|
||||
});
|
||||
});
|
||||
|
||||
describe('saveLanguage', () => {
|
||||
@@ -175,11 +175,11 @@ describe('StorageService', () => {
|
||||
expect(result).toBe('Taylor');
|
||||
});
|
||||
|
||||
it('falls back to default profile name when empty', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(' ');
|
||||
const result = await StorageService.getProfileName();
|
||||
expect(result).toBe('Alex Rivera');
|
||||
});
|
||||
it('falls back to default profile name when empty', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(' ');
|
||||
const result = await StorageService.getProfileName();
|
||||
expect(result).toBe('GreenLens User');
|
||||
});
|
||||
|
||||
it('stores normalized profile name', async () => {
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
Reference in New Issue
Block a user