mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-14 08:42:08 +10:00
90 lines
2.2 KiB
JavaScript
90 lines
2.2 KiB
JavaScript
import path from 'path';
|
|
import fs from 'fs';
|
|
|
|
const demoResumeId = 'demore';
|
|
const emptyResumeId = 'mtre01';
|
|
let resumesDictionary = {};
|
|
let useDemoResume = false;
|
|
|
|
let onAuthStateChangedObservers = [];
|
|
const testUser = {
|
|
displayName: 'Test User',
|
|
email: 'noemail@noemail.com',
|
|
};
|
|
|
|
const __init = () => {
|
|
resumesDictionary = {};
|
|
useDemoResume = false;
|
|
onAuthStateChangedObservers = [];
|
|
|
|
const demoResume = __readFile('../src/data/demoState.json');
|
|
resumesDictionary[demoResumeId] = demoResume;
|
|
const emptyResume = __readFile('../src/data/initialState.json');
|
|
resumesDictionary[emptyResumeId] = emptyResume;
|
|
|
|
for (var key in resumesDictionary) {
|
|
const resume = resumesDictionary[key];
|
|
|
|
resume.id = key;
|
|
|
|
let date = new Date('December 15, 2020 11:20:25');
|
|
resume.updatedAt = date.valueOf();
|
|
date.setMonth(date.getMonth() - 2);
|
|
resume.createdAt = date.valueOf();
|
|
}
|
|
};
|
|
|
|
const __readFile = (fileRelativePath) => {
|
|
const fileAbsolutePath = path.resolve(__dirname, fileRelativePath);
|
|
const fileBuffer = fs.readFileSync(fileAbsolutePath);
|
|
const fileData = JSON.parse(fileBuffer);
|
|
return fileData;
|
|
};
|
|
|
|
const __getResume = () => {
|
|
return useDemoResume
|
|
? resumesDictionary[demoResumeId]
|
|
: resumesDictionary[emptyResumeId];
|
|
};
|
|
|
|
const __useDemoResume = (value) => {
|
|
useDemoResume = value;
|
|
};
|
|
|
|
const __getResumeId = () => {
|
|
return __getResume().id;
|
|
};
|
|
|
|
const onAuthStateChanged = (observer) => {
|
|
onAuthStateChangedObservers.push(observer);
|
|
|
|
return () => {
|
|
onAuthStateChangedObservers = onAuthStateChangedObservers.filter(
|
|
(observer) => observer !== observer,
|
|
);
|
|
};
|
|
};
|
|
|
|
const signInAnonymously = async () => {
|
|
onAuthStateChangedObservers.forEach((observer) => observer(testUser));
|
|
|
|
var result = await Promise.resolve(testUser);
|
|
return result;
|
|
};
|
|
|
|
export default {
|
|
database: jest.fn().mockReturnValue({
|
|
ref: jest.fn().mockReturnValue({
|
|
once: jest.fn().mockResolvedValue({
|
|
val: jest.fn(__getResume),
|
|
}),
|
|
}),
|
|
}),
|
|
auth: jest.fn().mockReturnValue({
|
|
onAuthStateChanged: onAuthStateChanged,
|
|
signInAnonymously: signInAnonymously,
|
|
}),
|
|
};
|
|
|
|
export { __init, __useDemoResume, __getResumeId };
|