| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- const { eq, ok } = require('../../helpers/assert');
- const { makeNetwork, makePeer } = require('../../helpers/setup');
- describe('cv: create + read', (t) => {
- t('A creates own CV', async () => {
- const net = makeNetwork(); const A = makePeer(net); A.setActor();
- const r = await A.use('cv').createCV({
- name: 'Alice',
- description: 'developer',
- personalSkills: 'javascript,nodejs',
- personalExperiences: 'oasis',
- educationExperiences: '',
- educationalSkills: '',
- languages: 'en,es',
- professionalExperiences: '',
- professionalSkills: '',
- oasisExperiences: '',
- oasisSkills: '',
- location: 'remote',
- preferences: 'open-source'
- }, null);
- ok(r);
- const cv = await A.use('cv').getCVByUserId(A.keypair.id);
- ok(cv);
- eq(cv.name, 'Alice');
- });
- });
- describe('cv: visibility (public / hidden)', (t) => {
- const makeData = (visibility) => ({
- name: 'X', description: 'd', personalSkills: '', personalExperiences: '',
- educationExperiences: '', educationalSkills: '', languages: '', professionalExperiences: '',
- professionalSkills: '', oasisExperiences: '', oasisSkills: '', location: 'remote',
- preferences: 'REMOTE WORKING', visibility
- });
- t('default visibility is PUBLIC', async () => {
- const net = makeNetwork(); const A = makePeer(net); A.setActor();
- await A.use('cv').createCV(makeData(undefined), null);
- const cv = await A.use('cv').getCVByUserId(A.keypair.id);
- eq(cv.visibility, 'PUBLIC');
- });
- t('HIDDEN CV is visible to author', async () => {
- const net = makeNetwork(); const A = makePeer(net); A.setActor();
- await A.use('cv').createCV(makeData('HIDDEN'), null);
- const cv = await A.use('cv').getCVByUserId(A.keypair.id);
- ok(cv);
- eq(cv.visibility, 'HIDDEN');
- });
- t('HIDDEN CV returns null for non-author viewer', async () => {
- const net = makeNetwork(); const A = makePeer(net); const B = makePeer(net);
- A.setActor();
- await A.use('cv').createCV(makeData('HIDDEN'), null);
- B.setActor();
- eq(await B.use('cv').getCVByUserId(A.keypair.id), null);
- });
- t('PUBLIC CV is visible to non-author viewer', async () => {
- const net = makeNetwork(); const A = makePeer(net); const B = makePeer(net);
- A.setActor();
- await A.use('cv').createCV(makeData('PUBLIC'), null);
- B.setActor();
- const cv = await B.use('cv').getCVByUserId(A.keypair.id);
- ok(cv);
- eq(cv.visibility, 'PUBLIC');
- });
- t('update preserves visibility when not specified', async () => {
- const net = makeNetwork(); const A = makePeer(net); A.setActor();
- const r = await A.use('cv').createCV(makeData('HIDDEN'), null);
- const data = makeData(undefined); data.name = 'Y';
- await A.use('cv').updateCV(r.key, data, null);
- const cv = await A.use('cv').getCVByUserId(A.keypair.id);
- eq(cv.name, 'Y');
- eq(cv.visibility, 'HIDDEN');
- });
- t('update can flip visibility HIDDEN -> PUBLIC', async () => {
- const net = makeNetwork(); const A = makePeer(net); const B = makePeer(net);
- A.setActor();
- const r = await A.use('cv').createCV(makeData('HIDDEN'), null);
- await A.use('cv').updateCV(r.key, makeData('PUBLIC'), null);
- B.setActor();
- const cv = await B.use('cv').getCVByUserId(A.keypair.id);
- ok(cv);
- eq(cv.visibility, 'PUBLIC');
- });
- });
|