diff --git a/__tests__/schema.test.ts b/__tests__/schema.test.ts new file mode 100644 index 0000000..5ccbc91 --- /dev/null +++ b/__tests__/schema.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, test } from "bun:test"; +import { ItemSchema, getItemIndexByName, getTradableStatusByDefindex, getTradableStatusByName} from '../src/content/schemaService' + +const mockSchema: ItemSchema = { + '5021': { name: 'Mann Co. Supply Crate Key', tradable: true }, + '15013': { name: 'Non-Tradable Item', tradable: false } +} + +describe('Schema Service', () => { + + test('getItemIndexByName returns correct defindex', () => { + expect(getItemIndexByName(mockSchema, 'Mann Co. Supply Crate Key')).toBe(5021) + expect(getItemIndexByName(mockSchema, 'Non-Existent Item')).toBeNull() + }) + + test('getTradableStatusByDefindex returns correct status', () => { + expect(getTradableStatusByDefindex(mockSchema, 5021)).toBe(true) + expect(getTradableStatusByDefindex(mockSchema, 15013)).toBe(false) + expect(() => getTradableStatusByDefindex(mockSchema, 999)).toThrow() + }) + + test('getTradableStatusByName returns correct status', () => { + expect(getTradableStatusByName(mockSchema, 'Mann Co. Supply Crate Key')).toBe(true) + expect(getTradableStatusByName(mockSchema, 'Non-Tradable Item')).toBe(false) + expect(getTradableStatusByName(mockSchema, 'Non-Existent Item')).toBe(true) + }) +}) \ No newline at end of file