Skip to content

Commit e7fedaf

Browse files
authored
Merge pull request #61 from TaloDev/test-setup-fix
Fix test setup
2 parents c5964e5 + 556d08a commit e7fedaf

File tree

9 files changed

+28
-48
lines changed

9 files changed

+28
-48
lines changed

src/entities/user-two-factor-auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class UserTwoFactorAuth {
1212
@Property({ hidden: true })
1313
secret: string
1414

15-
@Property()
15+
@Property({ default: false })
1616
enabled: boolean
1717

1818
constructor(secret: string) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Migration } from '@mikro-orm/migrations'
2+
3+
export class SetUserTwoFactorAuthEnabledDefaultFalse extends Migration {
4+
5+
async up(): Promise<void> {
6+
this.addSql('alter table `user_two_factor_auth` modify `enabled` tinyint(1) default false;')
7+
}
8+
9+
}

src/migrations/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { CascadeDeletePlayerAliasEvents } from './20211221195514CascadeDeletePla
77
import { AddLeaderboardEntryHiddenColumn } from './20211224154919AddLeaderboardEntryHiddenColumn'
88
import { CreateGameSavesTable } from './20220109144435CreateGameSavesTable'
99
import { CreateGameActivitiesTable } from './20220125220401CreateGameActivitiesTable'
10+
import { SetUserTwoFactorAuthEnabledDefaultFalse } from './20220203130919SetUserTwoFactorAuthEnabledDefaultFalse'
1011

1112
export default [
1213
{
@@ -44,5 +45,9 @@ export default [
4445
{
4546
name: 'CreateGameActivitiesTable',
4647
class: CreateGameActivitiesTable
48+
},
49+
{
50+
name: 'SetUserTwoFactorAuthEnabledDefaultFalse',
51+
class: SetUserTwoFactorAuthEnabledDefaultFalse
4752
}
4853
]

src/services/public/demo.service.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import createQueue from '../../lib/queues/createQueue'
1010
import UserSession from '../../entities/user-session'
1111
import Event from '../../entities/event'
1212
import randomDate from '../../lib/dates/randomDate'
13+
import bcrypt from 'bcrypt'
1314

1415
interface DemoUserJob {
1516
userId: number
@@ -44,6 +45,7 @@ export default class DemoService implements Service {
4445
user.type = UserType.DEMO
4546
user.organisation = await em.getRepository(Organisation).findOne({ name: process.env.DEMO_ORGANISATION_NAME })
4647
user.emailConfirmed = true
48+
user.password = await bcrypt.hash(user.email, 10)
4749

4850
await em.getRepository(User).persistAndFlush(user)
4951

tests/fixtures/LeaderboardEntryFactory.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ export default class LeaderboardEntryFactory extends Factory<LeaderboardEntry> {
2424
return {
2525
leaderboard: this.leaderboard,
2626
playerAlias: casual.random_element(player.aliases.getItems()),
27-
score: Number(casual.double(10, 100000).toFixed(2))
27+
score: Number(casual.double(10, 100000).toFixed(2)),
28+
hidden: false
2829
}
2930
}
3031

tests/refresh-db.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

tests/services/_api/leaderboards-api/get.test.ts

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,7 @@ describe('Leaderboards API service - get', () => {
4343

4444
apiKey.scopes = [APIKeyScope.READ_LEADERBOARDS]
4545
const players = await new PlayerFactory([game]).many(3)
46-
const entries = await new LeaderboardEntryFactory(leaderboard, players).many(5)
47-
48-
await (<EntityManager>app.context.em).persistAndFlush([...players, ...entries])
49-
token = await createToken(apiKey)
50-
51-
const res = await request(app.callback())
52-
.get(`${baseUrl}/${leaderboard.internalName}/entries`)
53-
.query({ page: 0 })
54-
.auth(token, { type: 'bearer' })
55-
.expect(200)
56-
57-
expect(res.body.entries).toHaveLength(entries.length)
58-
})
59-
60-
it('should get leaderboard entries if the scope is valid', async () => {
61-
const leaderboard = await new LeaderboardFactory([game]).one()
62-
63-
apiKey.scopes = [APIKeyScope.READ_LEADERBOARDS]
64-
const players = await new PlayerFactory([game]).many(3)
65-
const entries = await new LeaderboardEntryFactory(leaderboard, players).many(5)
46+
const entries = await new LeaderboardEntryFactory(leaderboard, players).many(3)
6647
const hiddenEntries = await new LeaderboardEntryFactory(leaderboard, players).state('hidden').many(3)
6748

6849
await (<EntityManager>app.context.em).persistAndFlush([...players, ...entries, ...hiddenEntries])

tests/services/_public/demo/post.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ describe('Demo service - post', () => {
5151

5252
let oldEvents = events.filter((event) => event.createdAt < sub(new Date(), { months: 3 }))
5353
expect(oldEvents.length).toBeGreaterThan(0)
54-
54+
5555
await request(app.callback())
5656
.post(`${baseUrl}`)
5757
.expect(200)
5858

5959
await (<EntityManager>app.context.em).clear()
6060

61-
const updatedEvents = await (<EntityManager>app.context.em).getRepository(Event).findAll()
61+
const updatedEvents = await (<EntityManager>app.context.em).getRepository(Event).findAll()
6262
oldEvents = updatedEvents.filter((event) => event.createdAt < sub(new Date(), { months: 3 }))
6363

6464
expect(oldEvents).toHaveLength(0)

tests/setup-tests.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ set -e
1717

1818
docker run --name $CONTAINER -e MYSQL_DATABASE=$DB_NAME -e MYSQL_ROOT_PASSWORD=$DB_PASS -p $DB_PORT:3306 -d mysql:8
1919

20-
echo "Waiting for database..."
20+
echo "\nWaiting for database..."
2121

2222
TIME_TAKEN=0
2323
while ! docker exec $CONTAINER mysql --password=$DB_PASS --port=$DB_PORT -e "SELECT 1" >/dev/null 2>&1; do
2424
TIME_TAKEN=$(( TIME_TAKEN + 1 ))
2525
sleep 1
2626
done
2727

28-
echo "Database took $TIME_TAKEN seconds to get ready"
28+
echo "Database took $TIME_TAKEN seconds to get ready\n"
29+
30+
yarn mikro-orm migration:up
31+
32+
echo "\n"
2933

30-
./node_modules/.bin/ts-node tests/refresh-db.ts
3134
node --trace-warnings ./node_modules/.bin/jest "$@" --runInBand

0 commit comments

Comments
 (0)