feat: Implement dual scheduling API design and interfaces
- Add comprehensive dual scheduling interfaces to definitions.ts - Implement ContentFetchConfig, UserNotificationConfig, and DualScheduleConfiguration - Add new plugin methods for dual scheduling, content management, and callbacks - Update web implementations with mock functionality for all new methods - Fix all test files to include new dual scheduling method mocks - Ensure TypeScript compilation and all tests pass successfully Resolves: Plugin API design for dual scheduling system implementation
This commit is contained in:
@@ -19,6 +19,26 @@ describe('DailyNotification Advanced Scenarios', () => {
|
||||
getPowerState: jest.fn(),
|
||||
checkPermissions: jest.fn(),
|
||||
requestPermissions: jest.fn(),
|
||||
|
||||
// Dual scheduling methods
|
||||
scheduleContentFetch: jest.fn(),
|
||||
scheduleUserNotification: jest.fn(),
|
||||
scheduleDualNotification: jest.fn(),
|
||||
getDualScheduleStatus: jest.fn(),
|
||||
updateDualScheduleConfig: jest.fn(),
|
||||
cancelDualSchedule: jest.fn(),
|
||||
pauseDualSchedule: jest.fn(),
|
||||
resumeDualSchedule: jest.fn(),
|
||||
|
||||
// Content management methods
|
||||
getContentCache: jest.fn(),
|
||||
clearContentCache: jest.fn(),
|
||||
getContentHistory: jest.fn(),
|
||||
|
||||
// Callback management methods
|
||||
registerCallback: jest.fn(),
|
||||
unregisterCallback: jest.fn(),
|
||||
getRegisteredCallbacks: jest.fn(),
|
||||
};
|
||||
plugin = new DailyNotification(mockPlugin);
|
||||
});
|
||||
|
||||
@@ -33,6 +33,26 @@ describe('DailyNotification Plugin', () => {
|
||||
getPowerState: jest.fn(),
|
||||
checkPermissions: jest.fn(),
|
||||
requestPermissions: jest.fn(),
|
||||
|
||||
// Dual scheduling methods
|
||||
scheduleContentFetch: jest.fn(),
|
||||
scheduleUserNotification: jest.fn(),
|
||||
scheduleDualNotification: jest.fn(),
|
||||
getDualScheduleStatus: jest.fn(),
|
||||
updateDualScheduleConfig: jest.fn(),
|
||||
cancelDualSchedule: jest.fn(),
|
||||
pauseDualSchedule: jest.fn(),
|
||||
resumeDualSchedule: jest.fn(),
|
||||
|
||||
// Content management methods
|
||||
getContentCache: jest.fn(),
|
||||
clearContentCache: jest.fn(),
|
||||
getContentHistory: jest.fn(),
|
||||
|
||||
// Callback management methods
|
||||
registerCallback: jest.fn(),
|
||||
unregisterCallback: jest.fn(),
|
||||
getRegisteredCallbacks: jest.fn(),
|
||||
};
|
||||
|
||||
// Create plugin instance with mock
|
||||
|
||||
@@ -24,6 +24,26 @@ describe('DailyNotification Edge Cases', () => {
|
||||
getPowerState: jest.fn(),
|
||||
checkPermissions: jest.fn(),
|
||||
requestPermissions: jest.fn(),
|
||||
|
||||
// Dual scheduling methods
|
||||
scheduleContentFetch: jest.fn(),
|
||||
scheduleUserNotification: jest.fn(),
|
||||
scheduleDualNotification: jest.fn(),
|
||||
getDualScheduleStatus: jest.fn(),
|
||||
updateDualScheduleConfig: jest.fn(),
|
||||
cancelDualSchedule: jest.fn(),
|
||||
pauseDualSchedule: jest.fn(),
|
||||
resumeDualSchedule: jest.fn(),
|
||||
|
||||
// Content management methods
|
||||
getContentCache: jest.fn(),
|
||||
clearContentCache: jest.fn(),
|
||||
getContentHistory: jest.fn(),
|
||||
|
||||
// Callback management methods
|
||||
registerCallback: jest.fn(),
|
||||
unregisterCallback: jest.fn(),
|
||||
getRegisteredCallbacks: jest.fn(),
|
||||
};
|
||||
plugin = new DailyNotification(mockPlugin);
|
||||
});
|
||||
|
||||
@@ -23,6 +23,26 @@ describe('DailyNotification Enterprise Scenarios', () => {
|
||||
getPowerState: jest.fn(),
|
||||
checkPermissions: jest.fn(),
|
||||
requestPermissions: jest.fn(),
|
||||
|
||||
// Dual scheduling methods
|
||||
scheduleContentFetch: jest.fn(),
|
||||
scheduleUserNotification: jest.fn(),
|
||||
scheduleDualNotification: jest.fn(),
|
||||
getDualScheduleStatus: jest.fn(),
|
||||
updateDualScheduleConfig: jest.fn(),
|
||||
cancelDualSchedule: jest.fn(),
|
||||
pauseDualSchedule: jest.fn(),
|
||||
resumeDualSchedule: jest.fn(),
|
||||
|
||||
// Content management methods
|
||||
getContentCache: jest.fn(),
|
||||
clearContentCache: jest.fn(),
|
||||
getContentHistory: jest.fn(),
|
||||
|
||||
// Callback management methods
|
||||
registerCallback: jest.fn(),
|
||||
unregisterCallback: jest.fn(),
|
||||
getRegisteredCallbacks: jest.fn(),
|
||||
};
|
||||
plugin = new DailyNotification(mockPlugin);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user