Skip to content

Commit

Permalink
Add delegation update & duplicate token tests
Browse files Browse the repository at this point in the history
  • Loading branch information
MightOfOaks committed Oct 22, 2023
1 parent 0ed35a9 commit 8116ce5
Showing 1 changed file with 55 additions and 11 deletions.
66 changes: 55 additions & 11 deletions contracts/vip/e2e-tests/tests/loyaltyProgram/mintTokens.test.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { CosmWasmClient } from '@cosmjs/cosmwasm-stargate'
import { toUtf8 } from '@cosmjs/encoding'
import { denom } from '../../configs/chain_config.json'
import Context, { CONTRACT_MAP } from '../setup/context'
import Context, { CONTRACT_MAP, TestUser } from '../setup/context'
import { getQueryClient } from '../utils/client'
import { ArrayOfUint128, ExecuteMsg as MinterExecuteMsg } from '../types/minter.types'
import { ExecuteMsg as CollectionExecuteMsg } from '../types/collection.types'
import { MinterQueryClient } from '../types/minter.client'
import { CollectionQueryClient } from '../types/collection.client'
import { MsgExecuteContract } from 'cosmjs-types/cosmwasm/wasm/v1/tx'
import _ from 'lodash'

import { coin } from '@cosmjs/proto-signing'

describe('Mint Loyalty Program Tokens', () => {
const userOne = 'user1'
Expand All @@ -20,29 +20,32 @@ describe('Mint Loyalty Program Tokens', () => {
let minterQueryClient: MinterQueryClient
let minterAddress: string
let tiers: ArrayOfUint128
let testUserOne: TestUser

beforeAll(async () => {
context = new Context()
await context.initialize(true)
minterAddress = context.getContractAddress(CONTRACT_MAP.VIP_MINTER)

queryClient = await getQueryClient()

minterQueryClient = new MinterQueryClient(
queryClient,
minterAddress,
)

minterQueryClient = new MinterQueryClient(queryClient, minterAddress)
tiers = await minterQueryClient.tiers()
testUserOne = context.getTestUser(userOne)
})

test('Mint Initial Token', async () => {
const testUserOne = context.getTestUser(userOne)

const mintMsg: MinterExecuteMsg = {
mint: {},
}

const executionResult = await testUserOne.client.execute(testUserOne.address, minterAddress, mintMsg, "auto", "mint loyalty program token")
const executionResult = await testUserOne.client.execute(
testUserOne.address,
minterAddress,
mintMsg,
'auto',
'mint loyalty program token',
)

_.forEach(executionResult.events, (event) => {
if (event.type === 'wasm') {
Expand All @@ -52,8 +55,49 @@ describe('Mint Loyalty Program Tokens', () => {
}
})

const userOneTier = await minterQueryClient.tier({ address: testUserOne.address })
let userOneTier = await minterQueryClient.tier({ address: testUserOne.address })
expect(userOneTier).toBe(0)
})

test('Update Token', async () => {
await testUserOne.client.delegateTokens(
testUserOne.address,
'starsvaloper1jt9w26mpxxjsk63mvd4m2ynj0af09cslura0ec',
coin(1000, 'ustars'),
'auto',
'delegate tokens',
)

const updateMsg: MinterExecuteMsg = {
update: {
token_id: 1,
}
}

await testUserOne.client.execute(
testUserOne.address,
minterAddress,
updateMsg,
'auto',
'update token',
)

let userOneTier = await minterQueryClient.tier({ address: testUserOne.address })
expect(userOneTier).toBe(1)
})

test('Fail to Mint Duplicate Tokens', async () => {
const mintMsg: MinterExecuteMsg = {
mint: {},
}

await expect(testUserOne.client.execute(
testUserOne.address,
minterAddress,
mintMsg,
'auto',
'mint loyalty program token',
)).rejects.toThrowError(/AlreadyMinted/)
}
)
})

0 comments on commit 8116ce5

Please sign in to comment.