mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-15 01:01:43 +10:00
Firebase Stub refactoring, added eslint-plugin-jest dev dependency
This commit is contained in:
@ -1,4 +1,7 @@
|
||||
import FirebaseStub, { AuthConstants } from '../gatsby-plugin-firebase';
|
||||
import FirebaseStub, {
|
||||
AuthConstants,
|
||||
DatabaseConstants,
|
||||
} from '../gatsby-plugin-firebase';
|
||||
|
||||
describe('FirebaseStub', () => {
|
||||
const { resumesPath } = FirebaseStub.database();
|
||||
@ -49,14 +52,14 @@ describe('FirebaseStub', () => {
|
||||
const observer = () => {};
|
||||
const unsubscribe = FirebaseStub.auth().onAuthStateChanged(observer);
|
||||
expect(unsubscribe).toBeTruthy();
|
||||
expect(FirebaseStub.auth().onAuthStateChangedObservers.length).toEqual(1);
|
||||
expect(FirebaseStub.auth().onAuthStateChangedObservers).toHaveLength(1);
|
||||
expect(FirebaseStub.auth().onAuthStateChangedObservers[0]).toEqual(
|
||||
observer,
|
||||
);
|
||||
|
||||
unsubscribe();
|
||||
|
||||
expect(FirebaseStub.auth().onAuthStateChangedObservers.length).toEqual(0);
|
||||
expect(FirebaseStub.auth().onAuthStateChangedObservers).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
|
||||
@ -110,30 +113,24 @@ describe('FirebaseStub', () => {
|
||||
const resumesDataSnapshot = await resumesRef.once('value');
|
||||
const resumes = resumesDataSnapshot.val();
|
||||
expect(resumes).toBeTruthy();
|
||||
expect(Object.keys(resumes).length).toEqual(3);
|
||||
const demoStateResume1 =
|
||||
resumes[FirebaseStub.database().demoStateResume1Id];
|
||||
expect(Object.keys(resumes)).toHaveLength(3);
|
||||
const demoStateResume1 = resumes[DatabaseConstants.demoStateResume1Id];
|
||||
expect(demoStateResume1).toBeTruthy();
|
||||
expect(demoStateResume1.id).toEqual(
|
||||
FirebaseStub.database().demoStateResume1Id,
|
||||
);
|
||||
expect(demoStateResume1.id).toEqual(DatabaseConstants.demoStateResume1Id);
|
||||
expect(demoStateResume1.user).toEqual(
|
||||
FirebaseStub.database().anonymousUser1.uid,
|
||||
);
|
||||
const demoStateResume2 =
|
||||
resumes[FirebaseStub.database().demoStateResume2Id];
|
||||
const demoStateResume2 = resumes[DatabaseConstants.demoStateResume2Id];
|
||||
expect(demoStateResume2).toBeTruthy();
|
||||
expect(demoStateResume2.id).toEqual(
|
||||
FirebaseStub.database().demoStateResume2Id,
|
||||
);
|
||||
expect(demoStateResume2.id).toEqual(DatabaseConstants.demoStateResume2Id);
|
||||
expect(demoStateResume2.user).toEqual(
|
||||
FirebaseStub.database().anonymousUser2.uid,
|
||||
);
|
||||
const initialStateResume =
|
||||
resumes[FirebaseStub.database().initialStateResumeId];
|
||||
resumes[DatabaseConstants.initialStateResumeId];
|
||||
expect(initialStateResume).toBeTruthy();
|
||||
expect(initialStateResume.id).toEqual(
|
||||
FirebaseStub.database().initialStateResumeId,
|
||||
DatabaseConstants.initialStateResumeId,
|
||||
);
|
||||
expect(initialStateResume.user).toEqual(
|
||||
FirebaseStub.database().anonymousUser1.uid,
|
||||
@ -143,7 +140,7 @@ describe('FirebaseStub', () => {
|
||||
const usersDataSnapshot = await usersRef.once('value');
|
||||
const users = usersDataSnapshot.val();
|
||||
expect(users).toBeTruthy();
|
||||
expect(Object.keys(users).length).toEqual(2);
|
||||
expect(Object.keys(users)).toHaveLength(2);
|
||||
const anonymousUser1 = users[FirebaseStub.database().anonymousUser1.uid];
|
||||
expect(anonymousUser1).toBeTruthy();
|
||||
expect(anonymousUser1).toEqual(FirebaseStub.database().anonymousUser1);
|
||||
@ -157,12 +154,12 @@ describe('FirebaseStub', () => {
|
||||
|
||||
const resume = (
|
||||
await FirebaseStub.database()
|
||||
.ref(`${resumesPath}/${FirebaseStub.database().demoStateResume1Id}`)
|
||||
.ref(`${resumesPath}/${DatabaseConstants.demoStateResume1Id}`)
|
||||
.once('value')
|
||||
).val();
|
||||
|
||||
expect(resume).toBeTruthy();
|
||||
expect(resume.id).toEqual(FirebaseStub.database().demoStateResume1Id);
|
||||
expect(resume.id).toEqual(DatabaseConstants.demoStateResume1Id);
|
||||
});
|
||||
|
||||
it('retrieves null if resume does not exist', async () => {
|
||||
@ -243,7 +240,7 @@ describe('FirebaseStub', () => {
|
||||
snapshotValue = snapshot.val();
|
||||
});
|
||||
|
||||
expect(Object.keys(snapshotValue).length).toEqual(2);
|
||||
expect(Object.keys(snapshotValue)).toHaveLength(2);
|
||||
Object.values(snapshotValue).forEach((resume) =>
|
||||
expect(resume.user).toEqual(FirebaseStub.database().anonymousUser1.uid),
|
||||
);
|
||||
|
||||
@ -2,7 +2,10 @@ import path from 'path';
|
||||
import fs from 'fs';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { AuthConstants } from './gatsby-plugin-firebase/constants';
|
||||
import {
|
||||
AuthConstants,
|
||||
DatabaseConstants,
|
||||
} from './gatsby-plugin-firebase/constants';
|
||||
|
||||
class Auth {
|
||||
static #instance = undefined;
|
||||
@ -57,9 +60,6 @@ class Database {
|
||||
#references = {};
|
||||
#anonymousUser1 = undefined;
|
||||
#anonymousUser2 = undefined;
|
||||
#demoStateResume1Id = 'demo_1';
|
||||
#demoStateResume2Id = 'demo_2';
|
||||
#initialStateResumeId = 'initst';
|
||||
|
||||
constructor() {
|
||||
if (Database.#instance) {
|
||||
@ -99,18 +99,6 @@ class Database {
|
||||
return this.#anonymousUser2;
|
||||
}
|
||||
|
||||
get demoStateResume1Id() {
|
||||
return this.#demoStateResume1Id;
|
||||
}
|
||||
|
||||
get demoStateResume2Id() {
|
||||
return this.#demoStateResume2Id;
|
||||
}
|
||||
|
||||
get initialStateResumeId() {
|
||||
return this.#initialStateResumeId;
|
||||
}
|
||||
|
||||
get uuid() {
|
||||
return this.#uuid;
|
||||
}
|
||||
@ -131,11 +119,11 @@ class Database {
|
||||
date.setMonth(date.getMonth() - 2);
|
||||
demoStateResume1.createdAt = date.valueOf();
|
||||
demoStateResume1.user = this.anonymousUser1.uid;
|
||||
resumes[this.demoStateResume1Id] = demoStateResume1;
|
||||
resumes[DatabaseConstants.demoStateResume1Id] = demoStateResume1;
|
||||
|
||||
const demoStateResume2 = JSON.parse(JSON.stringify(demoStateResume1));
|
||||
demoStateResume2.user = this.anonymousUser2.uid;
|
||||
resumes[this.demoStateResume2Id] = demoStateResume2;
|
||||
resumes[DatabaseConstants.demoStateResume2Id] = demoStateResume2;
|
||||
|
||||
const initialStateResume = Database.readFile(
|
||||
'../src/data/initialState.json',
|
||||
@ -143,7 +131,7 @@ class Database {
|
||||
initialStateResume.updatedAt = date.valueOf();
|
||||
initialStateResume.createdAt = date.valueOf();
|
||||
initialStateResume.user = this.anonymousUser1.uid;
|
||||
resumes[this.initialStateResumeId] = initialStateResume;
|
||||
resumes[DatabaseConstants.initialStateResumeId] = initialStateResume;
|
||||
|
||||
for (var key in resumes) {
|
||||
const resume = resumes[key];
|
||||
@ -372,4 +360,4 @@ Object.defineProperty(FirebaseStub.database.ServerValue, 'TIMESTAMP', {
|
||||
});
|
||||
|
||||
export default FirebaseStub;
|
||||
export { AuthConstants };
|
||||
export { AuthConstants, DatabaseConstants };
|
||||
|
||||
@ -1 +1,4 @@
|
||||
export { Auth as AuthConstants } from './constants/auth';
|
||||
import AuthConstants from './constants/auth';
|
||||
import DatabaseConstants from './constants/database';
|
||||
|
||||
export { AuthConstants, DatabaseConstants };
|
||||
|
||||
@ -1,19 +1,27 @@
|
||||
class Auth {
|
||||
static anonymousUser1 = {
|
||||
displayName: 'Anonymous User 1',
|
||||
email: 'anonymous1@noemail.com',
|
||||
isAnonymous: true,
|
||||
name: 'Anonymous 1',
|
||||
uid: 'anonym123',
|
||||
};
|
||||
const anonymousUser1 = {
|
||||
displayName: 'Anonymous User 1',
|
||||
email: 'anonymous1@noemail.com',
|
||||
isAnonymous: true,
|
||||
name: 'Anonymous 1',
|
||||
uid: 'anonym123',
|
||||
};
|
||||
|
||||
static anonymousUser2 = {
|
||||
displayName: 'Anonymous User 2',
|
||||
email: 'anonymous2@noemail.com',
|
||||
isAnonymous: true,
|
||||
name: 'Anonymous 2',
|
||||
uid: 'anonym456',
|
||||
};
|
||||
const anonymousUser2 = {
|
||||
displayName: 'Anonymous User 2',
|
||||
email: 'anonymous2@noemail.com',
|
||||
isAnonymous: true,
|
||||
name: 'Anonymous 2',
|
||||
uid: 'anonym456',
|
||||
};
|
||||
|
||||
class Auth {
|
||||
static get anonymousUser1() {
|
||||
return anonymousUser1;
|
||||
}
|
||||
|
||||
static get anonymousUser2() {
|
||||
return anonymousUser2;
|
||||
}
|
||||
}
|
||||
|
||||
export { Auth };
|
||||
export default Auth;
|
||||
|
||||
19
__mocks__/gatsby-plugin-firebase/constants/database.js
Normal file
19
__mocks__/gatsby-plugin-firebase/constants/database.js
Normal file
@ -0,0 +1,19 @@
|
||||
const demoStateResume1Id = 'demo_1';
|
||||
const demoStateResume2Id = 'demo_2';
|
||||
const initialStateResumeId = 'initst';
|
||||
|
||||
class Database {
|
||||
static get demoStateResume1Id() {
|
||||
return demoStateResume1Id;
|
||||
}
|
||||
|
||||
static get demoStateResume2Id() {
|
||||
return demoStateResume2Id;
|
||||
}
|
||||
|
||||
static get initialStateResumeId() {
|
||||
return initialStateResumeId;
|
||||
}
|
||||
}
|
||||
|
||||
export default Database;
|
||||
Reference in New Issue
Block a user