modification Pagansunittest for Peter
This commit is contained in:
		| @@ -1,8 +1,8 @@ | |||||||
| const assert = require('assert'); | const assert = require("assert"); | ||||||
| const openpgp = require('openpgp'); | const openpgp = require("openpgp"); | ||||||
| const dayjs = require('dayjs'); | const dayjs = require("dayjs"); | ||||||
|  |  | ||||||
| const ut = { name: 'Pagans' }; | const ut = { name: "Pagans" }; | ||||||
|  |  | ||||||
| const apx = {}; | const apx = {}; | ||||||
|  |  | ||||||
| @@ -10,11 +10,11 @@ apx.generateKey = async (alias, passphrase) => { | |||||||
|   try { |   try { | ||||||
|     console.log(`\nGenerating keys for alias: ${alias}`); |     console.log(`\nGenerating keys for alias: ${alias}`); | ||||||
|     const pgpParams = { |     const pgpParams = { | ||||||
|             type: 'ecc', |       type: "ecc", | ||||||
|             curve: 'curve25519', |       curve: "curve25519", | ||||||
|       userIDs: [{ name: alias }], |       userIDs: [{ name: alias }], | ||||||
|       passphrase: passphrase, |       passphrase: passphrase, | ||||||
|             format: 'armored' |       format: "armored", | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     const key = await openpgp.generateKey(pgpParams); |     const key = await openpgp.generateKey(pgpParams); | ||||||
| @@ -24,7 +24,7 @@ apx.generateKey = async (alias, passphrase) => { | |||||||
|       alias, |       alias, | ||||||
|       passphrase, |       passphrase, | ||||||
|       privatekey: key.privateKey, |       privatekey: key.privateKey, | ||||||
|             publickey: key.publicKey |       publickey: key.publicKey, | ||||||
|     }; |     }; | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     console.error(`Error generating keys for alias: ${alias}`, error); |     console.error(`Error generating keys for alias: ${alias}`, error); | ||||||
| @@ -66,7 +66,9 @@ const apxFunctions = { | |||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   checkPersonData(alias, expectedFirstName) { |   checkPersonData(alias, expectedFirstName) { | ||||||
|         return personData[alias] && personData[alias].firstName === expectedFirstName; |     return ( | ||||||
|  |       personData[alias] && personData[alias].firstName === expectedFirstName | ||||||
|  |     ); | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   removePersonModification(alias, originalFirstName) { |   removePersonModification(alias, originalFirstName) { | ||||||
| @@ -79,33 +81,76 @@ const apxFunctions = { | |||||||
|   deleteAlias(alias) { |   deleteAlias(alias) { | ||||||
|     delete personData[alias]; |     delete personData[alias]; | ||||||
|     return !personData[alias]; |     return !personData[alias]; | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ut.test = { | ||||||
|  |   tribe: "smatchit", | ||||||
|  |   pagans: [ | ||||||
|  |     { | ||||||
|  |       alias: "unittestadminsmatchit", | ||||||
|  |       passphrase: "adminsmatchitPass", | ||||||
|  |       persons: { firstname: "toto", lastname: "titi", profils: ["anonymous"] }, | ||||||
|  |       testprofil: "adminrecruiter", | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       alias: "unittestseeker", | ||||||
|  |       passphrase: "", | ||||||
|  |       persons: { firstname: "toto", lastname: "titi", profils: ["anonymous"] }, | ||||||
|  |       testprofil: "seeker", | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ut.createpersons=()=>{ | ||||||
|  |     let msg = ""; | ||||||
|  |     ut.test.pagans.forEach((t) => { | ||||||
|  |         //test if alias does not already exist | ||||||
|  |         const pagan={} | ||||||
|  |         const getalias= Pagans.getalias(t.alias); | ||||||
|  |         if (getalias.status!=404) then alias already exist  | ||||||
|  |         else {delete} | ||||||
|  |  | ||||||
|  |         const keys = apx.generatekey(t.alias, t.passphrase) | ||||||
|  |         pagans.public key  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         schema.properties = t.properties; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       const res = Checkjson.schema.data(schema, t.data); | ||||||
|  |       if (res.status != t.status) { | ||||||
|  |         msg = msg == "" ? "Unconsistent testproperties() name list: " : `${msg},`; | ||||||
|  |         if (options.verbose) { | ||||||
|  |           console.log(t); | ||||||
|  |           console.log(res); | ||||||
|         } |         } | ||||||
| }; |         msg += res.err.map((e) => ` ${t.name} ${e.info}`); | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |     return assert.deepEqual(msg, "", msg); | ||||||
|  | } | ||||||
|  |  | ||||||
| const pagans = { |  | ||||||
|     adminsmatchits: { alias: 'adminsmatchit', passphrase: 'adminsmatchitPass' }, |  | ||||||
|     recruiters: { alias: 'recruiter', passphrase: 'recruiterPass' }, |  | ||||||
|     seekers: { alias: 'seeker', passphrase: 'seekerPass' }, |  | ||||||
|     adminrecruiters: { alias: 'adminrecruiter', passphrase: 'adminrecruiterPass' } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| Object.keys(pagans).forEach(key => { | Object.keys(pagans).forEach((key) => { | ||||||
|   pagans[key].headers = { |   pagans[key].headers = { | ||||||
|     xtrkversion: 1, |     xtrkversion: 1, | ||||||
|         xalias: 'anonymous', |     xalias: "anonymous", | ||||||
|         xapp: 'smatchapp', |     xapp: "smatchapp", | ||||||
|     xdays: 0, |     xdays: 0, | ||||||
|         xhash: 'anonymous', |     xhash: "anonymous", | ||||||
|         xlang: 'fr', |     xlang: "fr", | ||||||
|         xprofils: 'anonymous', |     xprofils: "anonymous", | ||||||
|         xtribe: 'smatchit', |     xtribe: "smatchit", | ||||||
|         xuuid: '0' |     xuuid: "0", | ||||||
|   }; |   }; | ||||||
| }); | }); | ||||||
|  |  | ||||||
| const testCases = [ | const testCases = [ | ||||||
|   { |   { | ||||||
|         name: 'Create Identity', |     name: "Create Identity", | ||||||
|     async run(user) { |     async run(user) { | ||||||
|       const identity = await apx.createIdentity(user.alias, user.passphrase); |       const identity = await apx.createIdentity(user.alias, user.passphrase); | ||||||
|       if (identity) { |       if (identity) { | ||||||
| @@ -115,34 +160,42 @@ const testCases = [ | |||||||
|       return identity; |       return identity; | ||||||
|     }, |     }, | ||||||
|     verify(identity, alias) { |     verify(identity, alias) { | ||||||
|             assert(identity, 'Identity should not be undefined'); |       assert(identity, "Identity should not be undefined"); | ||||||
|             assert(identity.alias === alias, 'Alias should match'); |       assert(identity.alias === alias, "Alias should match"); | ||||||
|             assert(identity.privatekey && identity.privatekey.includes('BEGIN PGP PRIVATE KEY BLOCK'), 'Private key is not valid'); |       assert( | ||||||
|             assert(identity.publickey && identity.publickey.includes('BEGIN PGP PUBLIC KEY BLOCK'), 'Public key is not valid'); |         identity.privatekey && | ||||||
|         } |           identity.privatekey.includes("BEGIN PGP PRIVATE KEY BLOCK"), | ||||||
|  |         "Private key is not valid" | ||||||
|  |       ); | ||||||
|  |       assert( | ||||||
|  |         identity.publickey && | ||||||
|  |           identity.publickey.includes("BEGIN PGP PUBLIC KEY BLOCK"), | ||||||
|  |         "Public key is not valid" | ||||||
|  |       ); | ||||||
|  |     }, | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|         name: 'Join Tribe', |     name: "Join Tribe", | ||||||
|     async run(user) { |     async run(user) { | ||||||
|             return await apx.joinTribe(user.alias, 'smatchit'); |       return await apx.joinTribe(user.alias, "smatchit"); | ||||||
|     }, |     }, | ||||||
|     verify(result) { |     verify(result) { | ||||||
|             assert(result, 'Joining tribe should return true'); |       assert(result, "Joining tribe should return true"); | ||||||
|         } |     }, | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|         name: 'Delete Alias', |     name: "Delete Alias", | ||||||
|     async run(user) { |     async run(user) { | ||||||
|       return await apx.deleteAlias(user.alias); |       return await apx.deleteAlias(user.alias); | ||||||
|     }, |     }, | ||||||
|     verify(result) { |     verify(result) { | ||||||
|             assert(result, 'Deleting alias should return true'); |       assert(result, "Deleting alias should return true"); | ||||||
|         } |     }, | ||||||
|     } |   }, | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| ut.run = async (options) => { | ut.run = async (options) => { | ||||||
|     console.log('Test Pagans Registration and Authentication'); |   console.log("Test Pagans Registration and Authentication"); | ||||||
|  |  | ||||||
|   // Create and test identities for all users |   // Create and test identities for all users | ||||||
|   for (const userKey of Object.keys(pagans)) { |   for (const userKey of Object.keys(pagans)) { | ||||||
| @@ -157,24 +210,28 @@ ut.run = async (options) => { | |||||||
|           testCase.verify(result, user.alias); |           testCase.verify(result, user.alias); | ||||||
|           console.log(`Test case ${testCase.name} for ${user.alias} passed`); |           console.log(`Test case ${testCase.name} for ${user.alias} passed`); | ||||||
|         } else { |         } else { | ||||||
|                     console.error(`Test case ${testCase.name} for ${user.alias} failed: No result returned`); |           console.error( | ||||||
|  |             `Test case ${testCase.name} for ${user.alias} failed: No result returned` | ||||||
|  |           ); | ||||||
|         } |         } | ||||||
|       } catch (error) { |       } catch (error) { | ||||||
|                 console.error(`Test case ${testCase.name} for ${user.alias} failed:`, error); |         console.error( | ||||||
|  |           `Test case ${testCase.name} for ${user.alias} failed:`, | ||||||
|  |           error | ||||||
|  |         ); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     console.log(`--- Finished testing for ${user.alias} ---\n`); |     console.log(`--- Finished testing for ${user.alias} ---\n`); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|     console.log('All test cases ran successfully'); |   console.log("All test cases ran successfully"); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| module.exports = ut; | module.exports = ut; | ||||||
|  |  | ||||||
|  |  | ||||||
| if (require.main === module) { | if (require.main === module) { | ||||||
|     ut.run({ verbose: true }).catch(err => { |   ut.run({ verbose: true }).catch((err) => { | ||||||
|         console.error('Test case failed:', err); |     console.error("Test case failed:", err); | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user