Skip to content

Instantly share code, notes, and snippets.

@mandemeskel
Created September 8, 2023 01:15
Show Gist options
  • Save mandemeskel/1e93774e1abe629ceed16fca2322c219 to your computer and use it in GitHub Desktop.
Save mandemeskel/1e93774e1abe629ceed16fca2322c219 to your computer and use it in GitHub Desktop.
example of testing API
import DataTypes from "@/models/data_types"
import User, { UpdateFindType } from "@/models/user"
import SaleL3Types from "@blogic/sale_l3_types"
import L3DataGenerators from "@tests/l3_data_generators"
import * as user_model_creator from "@tests/shared/user_model_creator"
namespace UserTapi {
export function createQuickBooksUser() {
return user_model_creator.createQuickBooksUser()
}
export function createInputData(): DataTypes.OldUser {
return {
company_name: 'company',
default_gateway: 'Gateway',
support_email: 'quest@ions.email',
last_login: '02/18/2023 03:08:06 am',
support_phone: '2341009898',
gateway_id: 'gw id',
}
}
export function createL3Placeholder(): SaleL3Types.Placeholder {
return L3DataGenerators.createL3Placeholder()
}
export function createL3Placeholders(): DataTypes.L3Placeholders {
return L3DataGenerators.createL3Placeholders()
}
export function createL3PlaceholderForGateway(
gateway: DataTypes.Gateways
): DataTypes.L3Placeholders {
const pls : DataTypes.L3Placeholders = {}
pls[gateway] = createL3Placeholder()
return pls
}
export function createRecord(input_data: DataTypes.OldUser) {
const record = new User(input_data)
record.save()
}
export function createSavedUser() {
return user_model_creator.createSavedUser()
}
export function createSavedUserWithoutSupportEmail() {
const user = createUnsavedUser()
user.support_email = undefined
user.save()
return user
}
export function createUnsavedUser() {
return user_model_creator.createUnsavedUser()
}
export function createSavedUserWithL3Placeholder() {
const user = createUnsavedUser()
const placeholder = createL3PlaceholderForGateway(user.default_gateway)
user.gateway_l3_placeholders = placeholder
user.save()
return User.get()
}
export function createSavedUserWithoutL3Placeholder() {
const user = createSavedUser()
user.update({ gateway_l3_placeholders: undefined })
return User.get()
}
export function dropTable() {
User.dropTable()
}
export function expectL3PlaceHolderToEq(
placeholder: DataTypes.L3Placeholders,
user: User = User.get()
) {
expect(user.gateway_l3_placeholders).toEqual(
placeholder
)
}
export function expectUserNotToExist() {
const user = User.getSafely()
expect(user).not.toBeInstanceOf(User)
}
export function expectUserToExist() {
const user = User.getSafely()
expect(user).toBeInstanceOf(User)
}
export function get() : User {
return User.get()
}
export function getSavedUser() : User {
return get()
}
export function update(
data: UpdateFindType,
) {
const user = get()
user.update(data)
}
export function updateWithOverwitePlaceholders(
data: UpdateFindType,
) {
const user = get()
user.update(data, { overwrite_placeholders: true })
}
}
export default UserTapi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment