test: refactor flakey test to use app context

This commit is contained in:
moughxyz
2023-01-16 09:53:39 -06:00
parent 854f1654d1
commit 2f07f7a3d1
3 changed files with 25 additions and 45 deletions

View File

@@ -64,31 +64,25 @@ describe('application instances', () => {
})
it('changing default host should not affect already signed in accounts', async () => {
/** This test will always succeed but should be observed for console exceptions */
const app = await Factory.createAndInitializeApplication(
'app',
Environment.Web,
Platform.MacWeb,
Factory.getDefaultHost(),
)
await Factory.registerUserToApplication({
application: app,
email: UuidGenerator.GenerateUuid(),
password: 'password',
const contextA = await Factory.createAppContext({
identifier: 'app',
host: Factory.getDefaultHost(),
})
await app.prepareForDeinit()
await Factory.safeDeinit(app)
await contextA.launch()
await contextA.register()
await contextA.deinit()
/** Recreate app with different host */
const recreatedApp = await Factory.createAndInitializeApplication(
'app',
Environment.Web,
Platform.MacWeb,
'http://nonsense.host',
)
const recreatedContext = await Factory.createAppContext({
identifier: 'app',
host: 'http://nonsense.host'
})
await recreatedContext.launch()
expect(recreatedApp.getHost()).to.not.equal('http://nonsense.host')
expect(recreatedApp.getHost()).to.equal(Factory.getDefaultHost())
expect(recreatedContext.application.getHost()).to.not.equal('http://nonsense.host')
expect(recreatedContext.application.getHost()).to.equal(Factory.getDefaultHost())
await recreatedContext.deinit()
})
it('signing out application should delete snjs_version', async () => {

View File

@@ -1,6 +1,7 @@
import FakeWebCrypto from './fake_web_crypto.js'
import * as Applications from './Applications.js'
import * as Utils from './Utils.js'
import * as Defaults from './Defaults.js'
import { createNotePayload } from './Items.js'
UuidGenerator.SetGenerator(new FakeWebCrypto().generateUUID)
@@ -11,28 +12,13 @@ const MaximumSyncOptions = {
}
export class AppContext {
constructor({ identifier, crypto, email, password, passcode } = {}) {
if (!identifier) {
identifier = `${Math.random()}`
}
if (!email) {
email = UuidGenerator.GenerateUuid()
}
if (!password) {
password = UuidGenerator.GenerateUuid()
}
if (!passcode) {
passcode = 'mypasscode'
}
this.identifier = identifier
constructor({ identifier, crypto, email, password, passcode, host } = {}) {
this.identifier = identifier || `${Math.random()}`
this.crypto = crypto
this.email = email
this.password = password
this.passcode = passcode
this.email = email || UuidGenerator.GenerateUuid()
this.password = password || UuidGenerator.GenerateUuid()
this.passcode = passcode || 'mypasscode'
this.host = host || Defaults.getDefaultHost()
}
enableLogging() {
@@ -55,7 +41,7 @@ export class AppContext {
this.identifier,
undefined,
undefined,
undefined,
this.host,
this.crypto || new FakeWebCrypto(),
)
}

View File

@@ -51,8 +51,8 @@ export async function createAppContextWithRealCrypto(identifier) {
return createAppContext({ identifier, crypto: new SNWebCrypto() })
}
export async function createAppContext({ identifier, crypto, email, password } = {}) {
const context = new AppContext({ identifier, crypto, email, password })
export async function createAppContext({ identifier, crypto, email, password, host } = {}) {
const context = new AppContext({ identifier, crypto, email, password, host })
await context.initialize()
return context
}