diff options
Diffstat (limited to 'app/models/character')
-rw-r--r-- | app/models/character/character.test.ts | 10 | ||||
-rw-r--r-- | app/models/character/character.ts | 17 |
2 files changed, 27 insertions, 0 deletions
diff --git a/app/models/character/character.test.ts b/app/models/character/character.test.ts new file mode 100644 index 0000000..2f330b4 --- /dev/null +++ b/app/models/character/character.test.ts @@ -0,0 +1,10 @@ +import { CharacterModel } from "./character" + +test("can be created", () => { + const instance = CharacterModel.create({ + id: 1, + name: "Rick Sanchez", + }) + + expect(instance).toBeTruthy() +}) diff --git a/app/models/character/character.ts b/app/models/character/character.ts new file mode 100644 index 0000000..ca3cbc7 --- /dev/null +++ b/app/models/character/character.ts @@ -0,0 +1,17 @@ +import { Instance, SnapshotOut, types } from "mobx-state-tree" + +/** + * Rick and Morty character model. + */ +export const CharacterModel = types.model("Character").props({ + id: types.identifierNumber, + name: types.maybe(types.string), + status: types.maybe(types.string), + image: types.maybe(types.string), +}) + +type CharacterType = Instance<typeof CharacterModel> +export interface Character extends CharacterType {} +type CharacterSnapshotType = SnapshotOut<typeof CharacterModel> +export interface CharacterSnapshot extends CharacterSnapshotType {} +export const createCharacterDefaultModel = () => types.optional(CharacterModel, {}) |