Refactor database services and add component tests
- Remove deprecated CouchDB service files - Update database test configurations - Add test files for components and auth modules - Update user context and admin interface - Remove migration script for unified config - Fix User interface properties in tests (use status instead of isActive)
This commit is contained in:
45
App.tsx
45
App.tsx
@@ -59,7 +59,7 @@ import {
|
||||
BarChartIcon,
|
||||
} from './components/icons/Icons';
|
||||
import { useUser } from './contexts/UserContext';
|
||||
import { dbService } from './services/couchdb.factory';
|
||||
import { databaseService } from './services/database';
|
||||
import { databaseSeeder } from './services/database.seeder';
|
||||
|
||||
const Header: React.FC<{
|
||||
@@ -242,10 +242,10 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
|
||||
const [medsData, remindersData, takenDosesData, settingsData] =
|
||||
await Promise.all([
|
||||
dbService.getMedications(user._id),
|
||||
dbService.getCustomReminders(user._id),
|
||||
dbService.getTakenDoses(user._id),
|
||||
dbService.getSettings(user._id),
|
||||
databaseService.getMedications(user._id),
|
||||
databaseService.getCustomReminders(user._id),
|
||||
databaseService.getTakenDoses(user._id),
|
||||
databaseService.getUserSettings(user._id),
|
||||
]);
|
||||
|
||||
console.warn('Data fetched successfully:', {
|
||||
@@ -308,18 +308,18 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
}, [medications, customReminders, currentTime]);
|
||||
|
||||
const handleAddMedication = async (med: Omit<Medication, '_id' | '_rev'>) => {
|
||||
const newMed = await dbService.addMedication(user._id, med);
|
||||
const newMed = await databaseService.createMedication(user._id, med);
|
||||
setMedications(prev => [...prev, newMed]);
|
||||
setAddModalOpen(false);
|
||||
};
|
||||
|
||||
const handleDeleteMedication = async (medToDelete: Medication) => {
|
||||
await dbService.deleteMedication(user._id, medToDelete);
|
||||
await databaseService.deleteMedication(medToDelete._id);
|
||||
setMedications(meds => meds.filter(med => med._id !== medToDelete._id));
|
||||
};
|
||||
|
||||
const handleUpdateMedication = async (updatedMed: Medication) => {
|
||||
const savedMed = await dbService.updateMedication(user._id, updatedMed);
|
||||
const savedMed = await databaseService.updateMedication(updatedMed);
|
||||
setMedications(meds =>
|
||||
meds.map(m => (m._id === savedMed._id ? savedMed : m))
|
||||
);
|
||||
@@ -329,16 +329,17 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
const handleAddReminder = async (
|
||||
reminder: Omit<CustomReminder, '_id' | '_rev'>
|
||||
) => {
|
||||
const newReminder = await dbService.addCustomReminder(user._id, reminder);
|
||||
const newReminder = await databaseService.createCustomReminder(
|
||||
user._id,
|
||||
reminder
|
||||
);
|
||||
setCustomReminders(prev => [...prev, newReminder]);
|
||||
setAddReminderOpen(false);
|
||||
};
|
||||
|
||||
const handleUpdateReminder = async (updatedReminder: CustomReminder) => {
|
||||
const savedReminder = await dbService.updateCustomReminder(
|
||||
user._id,
|
||||
updatedReminder
|
||||
);
|
||||
const savedReminder =
|
||||
await databaseService.updateCustomReminder(updatedReminder);
|
||||
setCustomReminders(reminders =>
|
||||
reminders.map(r => (r._id === savedReminder._id ? savedReminder : r))
|
||||
);
|
||||
@@ -346,7 +347,7 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
};
|
||||
|
||||
const handleDeleteReminder = async (reminderToDelete: CustomReminder) => {
|
||||
await dbService.deleteCustomReminder(user._id, reminderToDelete);
|
||||
await databaseService.deleteCustomReminder(reminderToDelete._id);
|
||||
setCustomReminders(reminders =>
|
||||
reminders.filter(r => r._id !== reminderToDelete._id)
|
||||
);
|
||||
@@ -371,13 +372,13 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
} else {
|
||||
newDoses[doseId] = new Date().toISOString();
|
||||
}
|
||||
const updatedDoc = await dbService.updateTakenDoses(user._id, {
|
||||
const updatedDoc = await databaseService.updateTakenDoses({
|
||||
...takenDosesDoc,
|
||||
doses: newDoses,
|
||||
});
|
||||
setTakenDosesDoc(updatedDoc);
|
||||
},
|
||||
[takenDosesDoc, user._id]
|
||||
[takenDosesDoc]
|
||||
);
|
||||
|
||||
const handleSnoozeDose = useCallback((doseId: string) => {
|
||||
@@ -656,10 +657,8 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
}, [medications, takenDoses, getDoseStatus]);
|
||||
|
||||
const handleUpdateSettings = async (newSettings: UserSettings) => {
|
||||
const updatedSettings = await dbService.updateSettings(
|
||||
user._id,
|
||||
newSettings
|
||||
);
|
||||
const updatedSettings =
|
||||
await databaseService.updateUserSettings(newSettings);
|
||||
setSettings(updatedSettings);
|
||||
};
|
||||
|
||||
@@ -669,10 +668,10 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
'Are you sure you want to delete all your medication data? This action cannot be undone.'
|
||||
)
|
||||
) {
|
||||
await dbService.deleteAllUserData(user._id);
|
||||
await databaseService.deleteAllUserData(user._id);
|
||||
setMedications([]);
|
||||
setCustomReminders([]);
|
||||
const updatedTakenDoses = await dbService.getTakenDoses(user._id);
|
||||
const updatedTakenDoses = await databaseService.getTakenDoses(user._id);
|
||||
setTakenDosesDoc(updatedTakenDoses);
|
||||
setAccountModalOpen(false);
|
||||
}
|
||||
@@ -681,7 +680,7 @@ const MedicationScheduleApp: React.FC<{ user: User }> = ({ user }) => {
|
||||
const handleCompleteOnboarding = async () => {
|
||||
if (settings) {
|
||||
try {
|
||||
const updatedSettings = await dbService.updateSettings(user._id, {
|
||||
const updatedSettings = await databaseService.updateUserSettings({
|
||||
...settings,
|
||||
hasCompletedOnboarding: true,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user