Skip to content

Commit

Permalink
Actually fix tests?
Browse files Browse the repository at this point in the history
  • Loading branch information
ikoenigsknecht committed Sep 30, 2024
1 parent 14f1730 commit 580184d
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 19 deletions.
12 changes: 12 additions & 0 deletions packages/backend/src/backendManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { INestApplicationContext } from '@nestjs/common'
import { OpenServices, validateOptions } from './options'
import { SOCKS_PROXY_AGENT } from './nest/const'
import { createLogger } from './nest/common/logger'
import { CryptoEngine, setEngine } from 'pkijs'

const logger = createLogger('backendManager')

Expand Down Expand Up @@ -40,6 +41,17 @@ export const runBackendDesktop = async () => {

const isDev = process.env.NODE_ENV === 'development'

const webcrypto = new Crypto()
setEngine(
'newEngine',
webcrypto,
new CryptoEngine({
name: '',
crypto: webcrypto,
subtle: webcrypto.subtle,
})
)

validateOptions(options)

const resourcesPath = isDev ? null : options.resourcesPath.trim()
Expand Down
38 changes: 33 additions & 5 deletions packages/backend/src/nest/storage/storage.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,31 +251,59 @@ export class StorageService extends EventEmitter {
await this.channels?.close()
this.logger.info('Closed channels DB')
} catch (e) {
this.logger.error('Error closing channels db', e)
if ((e as Error).message.includes('Store not initialized')) {
this.logger.warn(`Channels db wasn't initialized, moving on...`)
} else {
this.logger.error('Error closing channels db', e)
}
}

try {
this.logger.info('Closing certificates DB')
await this.certificatesStore?.close()
this.logger.info('Closed certificates DB')
} catch (e) {
this.logger.error('Error closing certificates db', e)
if ((e as Error).message.includes('Store not initialized')) {
this.logger.warn(`Certificates db wasn't initialized, moving on...`)
} else {
this.logger.error('Error closing certificates db', e)
}
}

try {
this.logger.info('Closing certificates requests DB')
await this.certificatesRequestsStore?.close()
this.logger.info('Closed certificates requests DB')
} catch (e) {
this.logger.error('Error closing certificates db', e)
if ((e as Error).message.includes('Store not initialized')) {
this.logger.warn(`Certificates requests db wasn't initialized, moving on...`)
} else {
this.logger.error('Error closing certificates requests db', e)
}
}

try {
this.logger.info('Closing community metadata DB')
await this.communityMetadataStore?.close()
this.logger.info('Closed community metadata DB')
} catch (e) {
this.logger.error('Error closing community metadata store', e)
if ((e as Error).message.includes('Store not initialized')) {
this.logger.warn(`Community metadata db wasn't initialized, moving on...`)
} else {
this.logger.error('Error closing community metadata db', e)
}
}

try {
this.logger.info('Closing user profile DB')
await this.userProfileStore?.close()
this.logger.info('Closed user profile DB')
} catch (e) {
this.logger.error('Error closing user profiles db', e)
if ((e as Error).message.includes('Store not initialized')) {
this.logger.warn(`User profile db wasn't initialized, moving on...`)
} else {
this.logger.error('Error closing user profile db', e)
}
}

await this.orbitDbService.stop()
Expand Down
5 changes: 5 additions & 0 deletions packages/desktop/src/rtl-tests/community.create.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,18 @@ import { ModalName } from '../renderer/sagas/modals/modals.types'
import { prepareStore } from '../renderer/testUtils/prepareStore'
import { renderComponent } from '../renderer/testUtils/renderComponent'
import { ioMock } from '../shared/setupTests'
import { setupCrypto } from '@quiet/identity'

jest.setTimeout(20_000)

describe('User', () => {
let socket: MockedSocket
const generalId = generateChannelId('general')

beforeAll(() => {
setupCrypto()
})

beforeEach(() => {
socket = new MockedSocket()
ioMock.mockImplementation(() => socket)
Expand Down
5 changes: 5 additions & 0 deletions packages/desktop/src/rtl-tests/community.join.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import {
SocketActionTypes,
} from '@quiet/types'
import { composeInvitationShareUrl } from '@quiet/common'
import { setupCrypto } from '@quiet/identity'

jest.setTimeout(20_000)

Expand Down Expand Up @@ -62,6 +63,10 @@ describe('User', () => {
}))
})

beforeAll(() => {
setupCrypto()
})

it('joins community and registers username', async () => {
const { store, runSaga } = await prepareStore(
{},
Expand Down
30 changes: 16 additions & 14 deletions packages/identity/src/test/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ import { createUserCert, type UserCert } from '../createUserCert'
import { createUserCsr, type UserCsr } from '../createUserCsr'
import config from '../config'

export function setupCrypto() {
const webcrypto = new Crypto()

setEngine(
'newEngine',
webcrypto,
new CryptoEngine({
name: '',
crypto: webcrypto,
subtle: webcrypto.subtle,
})
)
}

export const userData = {
nickname: 'userName',
commonName: 'nqnw4kc4c77fb47lk52m5l57h4tcxceo7ymxekfn7yh5m66t4jv2olad.onion',
Expand All @@ -17,6 +31,7 @@ const notBeforeDate = new Date()
const notAfterDate = new Date(2030, 1, 1)

export async function createTestRootCA(commonName?: string): Promise<RootCA> {
setupCrypto()
return await createRootCA(
new Time({ type: 1, value: notBeforeDate }),
new Time({ type: 1, value: notAfterDate }),
Expand All @@ -34,21 +49,8 @@ export async function createTestUserCert(rootCert?: RootCA, userCsr?: UserCsr):
return await createUserCert(rootC.rootCertString, rootC.rootKeyString, user.userCsr, notBeforeDate, notAfterDate)
}

export function setupCrypto() {
const webcrypto = new Crypto()

setEngine(
'newEngine',
webcrypto,
new CryptoEngine({
name: '',
crypto: webcrypto,
subtle: webcrypto.subtle,
})
)
}

export const createRootCertificateTestHelper = async (commonName: string): Promise<RootCA> => {
setupCrypto()
return await createRootCA(
new Time({ type: 0, value: notBeforeDate }),
new Time({ type: 0, value: notAfterDate }),
Expand Down
3 changes: 3 additions & 0 deletions packages/state-manager/src/utils/tests/factories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
createRootCertificateTestHelper,
createUserCertificateTestHelper,
keyObjectFromString,
setupCrypto,
verifySignature,
} from '@quiet/identity'

Expand All @@ -42,6 +43,8 @@ export const generateMessageFactoryContentWithId = (
}

export const getFactory = async (store: Store) => {
setupCrypto()

// @ts-ignore
const factory = new factoryGirl.FactoryGirl()

Expand Down

0 comments on commit 580184d

Please sign in to comment.