F-201 F-202 F-203: POS cash close report + email + PIN admin
F-201: GET /pos/reports/cash-close/:id with financial summary, sales by state, payments breakdown, items sold. Extended /pos/sessions/:id. F-202: Cash close email sent on session close to smtpReportEmail (best-effort). smtpReportEmail field added to admin SMTP settings. F-203: Admin POS terminal config: selfpayMode, closeSessionRequiresPin, closeSessionPin (4-6 digits) with dedicated settings section.
This commit is contained in:
@@ -50,6 +50,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn(),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const tokens: PasswordResetTokenRepository = {
|
||||
invalidateAllForUser: vi.fn(),
|
||||
@@ -84,6 +86,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn(),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const tokens: PasswordResetTokenRepository = {
|
||||
invalidateAllForUser: vi.fn().mockResolvedValue(undefined),
|
||||
@@ -119,6 +123,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn(),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const tokens: PasswordResetTokenRepository = {
|
||||
invalidateAllForUser: vi.fn(),
|
||||
@@ -156,6 +162,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn().mockResolvedValue({ id: 'u-1', email: 'a', role: 'customer', createdAt: new Date() }),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const hasher: PasswordHasher = { hash: vi.fn().mockResolvedValue('NEWHASH'), verify: vi.fn() };
|
||||
const audit = vi.fn();
|
||||
@@ -183,6 +191,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn(),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const hasher: PasswordHasher = { hash: vi.fn(), verify: vi.fn() };
|
||||
const useCase = new ConfirmPasswordReset({ tokens, users, hasher });
|
||||
@@ -205,6 +215,8 @@ describe('password reset', () => {
|
||||
listUsers: vi.fn(),
|
||||
updateUser: vi.fn(),
|
||||
deleteUser: vi.fn(),
|
||||
findByConfirmationToken: vi.fn(),
|
||||
confirmByToken: vi.fn(),
|
||||
};
|
||||
const hasher: PasswordHasher = { hash: vi.fn(), verify: vi.fn() };
|
||||
const useCase = new ConfirmPasswordReset({ tokens, users, hasher });
|
||||
|
||||
Reference in New Issue
Block a user