diff --git a/src/parseEconItem/ParsedEcon/ItemName.ts b/src/parseEconItem/ParsedEcon/ItemName.ts index eecf8c9..50bc7b3 100644 --- a/src/parseEconItem/ParsedEcon/ItemName.ts +++ b/src/parseEconItem/ParsedEcon/ItemName.ts @@ -84,6 +84,8 @@ export default class ItemName { itemNumber, } = this.econ.getNameAttributes('', false, false); + name = name.replace(/\n/g, ' '); + if (isUniqueHat) { name = name.replace('The ', ''); } @@ -106,6 +108,10 @@ export default class ItemName { name = name.replace('Series ', ''); } + if (name.includes('Keyless Case Series')) { + name = name.replace('Series ', ''); + } + return name; } diff --git a/src/parseEconItem/ParsedEcon/getNameAttributes.ts b/src/parseEconItem/ParsedEcon/getNameAttributes.ts index 89a9504..385d360 100644 --- a/src/parseEconItem/ParsedEcon/getNameAttributes.ts +++ b/src/parseEconItem/ParsedEcon/getNameAttributes.ts @@ -55,7 +55,13 @@ export default function (econ: ParsedEcon): NameAttributes { * @returns name */ function getNameForItemNumber(econ: ParsedEcon) { - if (!hasBeenRenamed(econ)) return econ.item.name; + if (!hasBeenRenamed(econ)) { + if (econ.item.market_name.includes('Keyless Case Series')) { + return econ.item.market_name; + } + + return econ.item.name; + } if (!econ.options.itemNumberFromFraudWarning) return econ.itemName.getOrigin(); const warning = econ.item.fraudwarnings?.find((f) => f.startsWith('This item has been renamed.') diff --git a/src/shared/decomposeName.ts b/src/shared/decomposeName.ts index 3a15f55..329ab2a 100644 --- a/src/shared/decomposeName.ts +++ b/src/shared/decomposeName.ts @@ -28,6 +28,8 @@ export default function ( } = attributes; let itemName: string = name; + itemName = itemName.replace(/\n/g, ' '); // Some items include \n, that is shown as space on steam. + if (!craftable) itemName = itemName.replace('Non-Craftable ', ''); if (australium) itemName = itemName.replace('Australium ', ''); if (festivized) itemName = itemName.replace('Festivized ', ''); @@ -67,6 +69,10 @@ export default function ( if (isUniqueHat) itemName = itemName.replace(/^The /, ''); if (quality.elevated) itemName = itemName.replace('Strange ', ''); + if (itemName.includes('Keyless Case Series')) { + itemName = itemName.replace('Series ', ''); + } + return itemName; } diff --git a/test/econItem.js b/test/econItem.js index 425a1bf..ed90943 100644 --- a/test/econItem.js +++ b/test/econItem.js @@ -5,100 +5,162 @@ const { createFormat } = require('../dist'); describe('parseEconItem', () => { it('Case #1', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8407830034', - classid: '3662018019', - instanceid: '11040671', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - descriptions: [{ - value: 'Mercenary Grade Flame Thrower (Minimal Wear)', color: '4b69ff', - }, { value: '★ Unusual Effect: Cool', color: 'ffd700' }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Extinguishing teammates restores 20 health', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: ' Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: '★ Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - name: 'Festivized Forest Fire Flame Thrower', - name_color: '8650AC', - type: '', - market_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_hash_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Rare', - localized_category_name: 'Grade', - localized_tag_name: 'Mercenary', - color: '4b69ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_MinimalWear', - localized_category_name: 'Exterior', - localized_tag_name: 'Minimal Wear', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8407830034', + classid: '3662018019', + instanceid: '11040671', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + descriptions: [ + { + value: 'Mercenary Grade Flame Thrower (Minimal Wear)', + color: '4b69ff', + }, + { value: '★ Unusual Effect: Cool', color: 'ffd700' }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Extinguishing teammates restores 20 health', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: ' Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: '★ Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + name: 'Festivized Forest Fire Flame Thrower', + name_color: '8650AC', + type: '', + market_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_hash_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Rare', + localized_category_name: 'Grade', + localized_tag_name: 'Mercenary', + color: '4b69ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_MinimalWear', + localized_category_name: 'Exterior', + localized_tag_name: 'Minimal Wear', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Flame Thrower', - fullName: 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + fullName: + 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', id: '8407830034', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w/', tradable: true, @@ -123,63 +185,82 @@ describe('parseEconItem', () => { }); it('Case #2', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8555715171', - classid: '3717643208', - instanceid: '344437314', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', - descriptions: [{ - value: '★ Unusual Effect: Nuts n\' Bolts', color: 'ffd700', - }, { value: '\'\'hmm epic\'\'' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=434&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16442165943709427870', - name: 'Inspect in Game...', - }], - name: 'Unusual Brain Bucket', - name_color: '8650AC', - type: 'Level 82 Hat', - market_name: 'Unusual Brain Bucket', - market_hash_name: 'Unusual Brain Bucket', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16442165943709427870', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8555715171', + classid: '3717643208', + instanceid: '344437314', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', + descriptions: [ + { + value: "★ Unusual Effect: Nuts n' Bolts", + color: 'ffd700', + }, + { value: "''hmm epic''" }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=434&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16442165943709427870', + name: 'Inspect in Game...', + }, + ], + name: 'Unusual Brain Bucket', + name_color: '8650AC', + type: 'Level 82 Hat', + market_name: 'Unusual Brain Bucket', + market_hash_name: 'Unusual Brain Bucket', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16442165943709427870', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Brain Bucket', - fullName: 'Nuts n\' Bolts Brain Bucket', + fullName: "Nuts n' Bolts Brain Bucket", id: '8555715171', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg/', tradable: true, @@ -197,89 +278,149 @@ describe('parseEconItem', () => { }); it('Case #3', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8574678947', - classid: '3555490789', - instanceid: '856289751', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - descriptions: [{ value: 'Commando Grade Hat', color: '8847ff' }, { - value: '★ Unusual Effect: Twisted Radiance', color: 'ffd700', - }, { value: ' ' }, { value: ' ' }, { value: 'Spooky Spoils Collection' }, { - value: ' Mister Bones', color: 'eb4b4b', - }, { value: ' Pyr\'o Lantern', color: 'eb4b4b' }, { - value: ' Racc Mann', color: 'd32ce6', - }, { value: ' Head of the Dead', color: 'd32ce6' }, { - value: ' Elizabeth the Third', color: 'd32ce6', - }, { value: ' The Trick Stabber', color: 'd32ce6' }, { - value: ' El Zapateador', color: '8847ff', - }, { value: ' The Horrible Horns', color: '8847ff' }, { - value: '★ Skullbrero', color: '8847ff', - }, { value: ' Soviet Strongmann', color: '8847ff' }, { - value: ' Voodoo Vizier', color: '8847ff', - }, { value: ' Madmann\'s Muzzle', color: '8847ff' }, { - value: ' BINOCULUS!', color: '4b69ff', - }, { value: ' Derangement Garment', color: '4b69ff' }, { - value: ' Convict Cap', color: '4b69ff', - }, { value: ' El Mostacho', color: '4b69ff' }, { - value: ' Candy Cranium', color: '4b69ff', - }, { value: ' Bat Hat', color: '4b69ff' }, { - value: ' Pocket Halloween Boss', color: '4b69ff', - }, { value: ' Party Poncho', color: '4b69ff' }, { - value: ' Fuel Injector', color: '4b69ff', - }, { value: ' Bread Biter', color: '4b69ff' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - name: 'Unusual Skullbrero', - name_color: '8650AC', - type: 'Level 57 Hat', - market_name: 'Unusual Skullbrero', - market_hash_name: 'Unusual Skullbrero', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'halloween2019_collection_name', - localized_category_name: 'Collection', - localized_tag_name: 'Spooky Spoils Collection', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8574678947', + classid: '3555490789', + instanceid: '856289751', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + descriptions: [ + { value: 'Commando Grade Hat', color: '8847ff' }, + { + value: '★ Unusual Effect: Twisted Radiance', + color: 'ffd700', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Spooky Spoils Collection' }, + { + value: ' Mister Bones', + color: 'eb4b4b', + }, + { value: " Pyr'o Lantern", color: 'eb4b4b' }, + { + value: ' Racc Mann', + color: 'd32ce6', + }, + { value: ' Head of the Dead', color: 'd32ce6' }, + { + value: ' Elizabeth the Third', + color: 'd32ce6', + }, + { value: ' The Trick Stabber', color: 'd32ce6' }, + { + value: ' El Zapateador', + color: '8847ff', + }, + { value: ' The Horrible Horns', color: '8847ff' }, + { + value: '★ Skullbrero', + color: '8847ff', + }, + { value: ' Soviet Strongmann', color: '8847ff' }, + { + value: ' Voodoo Vizier', + color: '8847ff', + }, + { value: " Madmann's Muzzle", color: '8847ff' }, + { + value: ' BINOCULUS!', + color: '4b69ff', + }, + { value: ' Derangement Garment', color: '4b69ff' }, + { + value: ' Convict Cap', + color: '4b69ff', + }, + { value: ' El Mostacho', color: '4b69ff' }, + { + value: ' Candy Cranium', + color: '4b69ff', + }, + { value: ' Bat Hat', color: '4b69ff' }, + { + value: ' Pocket Halloween Boss', + color: '4b69ff', + }, + { value: ' Party Poncho', color: '4b69ff' }, + { + value: ' Fuel Injector', + color: '4b69ff', + }, + { value: ' Bread Biter', color: '4b69ff' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + name: 'Unusual Skullbrero', + name_color: '8650AC', + type: 'Level 57 Hat', + market_name: 'Unusual Skullbrero', + market_hash_name: 'Unusual Skullbrero', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'halloween2019_collection_name', + localized_category_name: 'Collection', + localized_tag_name: 'Spooky Spoils Collection', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Skullbrero', @@ -303,58 +444,78 @@ describe('parseEconItem', () => { }); it('Case #4', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8610658018', - classid: '171010366', - instanceid: '176498576', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - descriptions: [{ value: '★ Unusual Effect: Smoking', color: 'ffd700' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - name: 'Unusual Prancer\'s Pride', - name_color: '8650AC', - type: 'Level 88 Hat', - market_name: 'Unusual Prancer\'s Pride', - market_hash_name: 'Unusual Prancer\'s Pride', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8610658018', + classid: '171010366', + instanceid: '176498576', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + descriptions: [ + { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + name: "Unusual Prancer's Pride", + name_color: '8650AC', + type: 'Level 88 Hat', + market_name: "Unusual Prancer's Pride", + market_hash_name: "Unusual Prancer's Pride", + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { - name: 'Prancer\'s Pride', - fullName: 'Smoking Prancer\'s Pride', + name: "Prancer's Pride", + fullName: "Smoking Prancer's Pride", id: '8610658018', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX/', tradable: true, @@ -372,106 +533,168 @@ describe('parseEconItem', () => { }); it('Case #5', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8656785508', - classid: '3543846179', - instanceid: '3516082756', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - descriptions: [{ - value: 'Commando Grade Rocket Launcher (Field-Tested)', color: '8847ff', - }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', color: '7ea9d1', - }, { - value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: '✔ Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: ' Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - fraudwarnings: ['This item has been renamed.\nOriginal name: "Rocket Launcher"'], - name: '\'\'post live spell rocket louncher !!!!!!!\'\'', - name_color: 'FAFAFA', - type: '', - market_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_hash_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'paintkitweapon', - localized_category_name: 'Quality', - localized_tag_name: 'Decorated Weapon', - color: 'FAFAFA', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_FieldTested', - localized_category_name: 'Exterior', - localized_tag_name: 'Field-Tested', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8656785508', + classid: '3543846179', + instanceid: '3516082756', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + descriptions: [ + { + value: 'Commando Grade Rocket Launcher (Field-Tested)', + color: '8847ff', + }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', + color: '7ea9d1', + }, + { + value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: '✔ Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: ' Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "Rocket Launcher"', + ], + name: "''post live spell rocket louncher !!!!!!!''", + name_color: 'FAFAFA', + type: '', + market_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_hash_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'paintkitweapon', + localized_category_name: 'Quality', + localized_tag_name: 'Decorated Weapon', + color: 'FAFAFA', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_FieldTested', + localized_category_name: 'Exterior', + localized_tag_name: 'Field-Tested', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + fullName: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', id: '8656785508', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA/', tradable: true, @@ -495,58 +718,82 @@ describe('parseEconItem', () => { }); it('Case #6', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8733746813', - classid: '221512872', - instanceid: '92637229', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', - descriptions: [{ - value: 'Holiday Restriction: Halloween / Full Moon', color: 'd83636', - }, { - value: 'Halloween: Spectral Spectrum (spell only active during event)', color: '7ea9d1', - }, { value: '' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30290&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16238051287194648628', - name: 'Inspect in Game...', - }], - name: 'Haunted PY-40 Incinibot', - name_color: '38f3ab', - type: 'Level 58 Mask', - market_name: 'Haunted PY-40 Incinibot', - market_hash_name: 'Haunted PY-40 Incinibot', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16238051287194648628', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'haunted', - localized_category_name: 'Quality', - localized_tag_name: 'Haunted', - color: '38f3ab', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8733746813', + classid: '221512872', + instanceid: '92637229', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', + descriptions: [ + { + value: 'Holiday Restriction: Halloween / Full Moon', + color: 'd83636', + }, + { + value: 'Halloween: Spectral Spectrum (spell only active during event)', + color: '7ea9d1', + }, + { value: '' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30290&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16238051287194648628', + name: 'Inspect in Game...', + }, + ], + name: 'Haunted PY-40 Incinibot', + name_color: '38f3ab', + type: 'Level 58 Mask', + market_name: 'Haunted PY-40 Incinibot', + market_hash_name: 'Haunted PY-40 Incinibot', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16238051287194648628', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'haunted', + localized_category_name: 'Quality', + localized_tag_name: 'Haunted', + color: '38f3ab', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'PY-40 Incinibot', @@ -567,68 +814,90 @@ describe('parseEconItem', () => { }); it('Case #7', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8434754722', - classid: '88783771', - instanceid: '92739934', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', - icon_url_large: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', - descriptions: [{ - value: 'Paint Color: Noble Hatter\'s Violet', color: '756b5e', - }, { - value: 'Halloween: Spectral Spectrum (spell only active during event)', color: '7ea9d1', - }, { - value: 'The K-9 mane is perfect for tricky social situations. People will either only want to talk about the hat, which means they\'ll be distracted from that rash making its way up your jugular,or they\'ll avoid you altogether. It\'s a win/win!', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=876&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7378163898213210976', - name: 'Inspect in Game...', - }], - name: 'Genuine K-9 Mane', - name_color: '4D7455', - type: 'Level 1 Spirit Animal', - market_name: 'Genuine K-9 Mane', - market_hash_name: 'Genuine K-9 Mane', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7378163898213210976', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity1', - localized_category_name: 'Quality', - localized_tag_name: 'Genuine', - color: '4D7455', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Demoman', - localized_category_name: 'Class', - localized_tag_name: 'Demoman', - }, { - category: 'Class', - internal_name: 'Heavy', - localized_category_name: 'Class', - localized_tag_name: 'Heavy', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8434754722', + classid: '88783771', + instanceid: '92739934', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', + icon_url_large: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', + descriptions: [ + { + value: "Paint Color: Noble Hatter's Violet", + color: '756b5e', + }, + { + value: 'Halloween: Spectral Spectrum (spell only active during event)', + color: '7ea9d1', + }, + { + value: "The K-9 mane is perfect for tricky social situations. People will either only want to talk about the hat, which means they'll be distracted from that rash making its way up your jugular,or they'll avoid you altogether. It's a win/win!", + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=876&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7378163898213210976', + name: 'Inspect in Game...', + }, + ], + name: 'Genuine K-9 Mane', + name_color: '4D7455', + type: 'Level 1 Spirit Animal', + market_name: 'Genuine K-9 Mane', + market_hash_name: 'Genuine K-9 Mane', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7378163898213210976', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity1', + localized_category_name: 'Quality', + localized_tag_name: 'Genuine', + color: '4D7455', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Demoman', + localized_category_name: 'Class', + localized_tag_name: 'Demoman', + }, + { + category: 'Class', + internal_name: 'Heavy', + localized_category_name: 'Class', + localized_tag_name: 'Heavy', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'K-9 Mane', @@ -644,69 +913,91 @@ describe('parseEconItem', () => { spells: ['Spectral Spectrum'], marketable: true, commodity: false, - paint: 'Noble Hatter\'s Violet', + paint: "Noble Hatter's Violet", level: 1, }); }); it('Case #8', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8294625611', - classid: '1336074160', - instanceid: '3639098153', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', - descriptions: [{ value: 'Style: Tie', color: '756b5e' }, { - value: 'Halloween: Chromatic Corruption (spell only active during event)', color: '7ea9d1', - }, { - value: 'Halloween: Voices From Below (spell only active during event)', color: '7ea9d1', - }, { - value: 'Whether you\'re trepanning a skull to let out the sickness ghosts or attaching enough leeches to a patient that they\'ll pass out from blood loss before you cut off any suspicious-lookinglimbs, this dapper ruffed shirt and coat will assure your patients that they came to the right place for their dangerously insane 18th century medicine.', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=878&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D434113929687356346', - name: 'Inspect in Game...', - }], - name: 'Strange Genuine Foppish Physician', - name_color: '4D7455', - type: 'Strange Apparel - Points Scored: 1', - market_name: 'Strange Genuine Foppish Physician', - market_hash_name: 'Strange Genuine Foppish Physician', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D434113929687356346', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity1', - localized_category_name: 'Quality', - localized_tag_name: 'Genuine', - color: '4D7455', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Medic', - localized_category_name: 'Class', - localized_tag_name: 'Medic', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8294625611', + classid: '1336074160', + instanceid: '3639098153', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', + descriptions: [ + { value: 'Style: Tie', color: '756b5e' }, + { + value: 'Halloween: Chromatic Corruption (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Halloween: Voices From Below (spell only active during event)', + color: '7ea9d1', + }, + { + value: "Whether you're trepanning a skull to let out the sickness ghosts or attaching enough leeches to a patient that they'll pass out from blood loss before you cut off any suspicious-lookinglimbs, this dapper ruffed shirt and coat will assure your patients that they came to the right place for their dangerously insane 18th century medicine.", + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=878&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D434113929687356346', + name: 'Inspect in Game...', + }, + ], + name: 'Strange Genuine Foppish Physician', + name_color: '4D7455', + type: 'Strange Apparel - Points Scored: 1', + market_name: 'Strange Genuine Foppish Physician', + market_hash_name: 'Strange Genuine Foppish Physician', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D434113929687356346', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity1', + localized_category_name: 'Quality', + localized_tag_name: 'Genuine', + color: '4D7455', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Medic', + localized_category_name: 'Class', + localized_tag_name: 'Medic', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Foppish Physician', @@ -728,62 +1019,88 @@ describe('parseEconItem', () => { }); it('Case #9', () => { - const econItem = parseEconItem({ - appid: 440, - classid: '4044585817', - instanceid: '11040545', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', - descriptions: [{ - value: 'Holiday Restriction: Halloween / Full Moon', color: '756b5e', - }, { - value: '\'\'Halloween: Chromatic Corruption (spell only active during event)\'\'', color: '756b5e', - }, { value: '\'\'Sheen: sheen\'\'', color: '756b5e' }, { - value: '\'\'Paint: paint\'\'', color: '756b5e', - }, { value: '\'\'Festivized\'\'', color: '756b5e' }, { - value: '\'\'( Not Usable in Crafting )\'\'', color: '756b5e', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5618&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D12289692045334241370', - name: 'Inspect in Game...', - }], - name: 'Haunted Voodoo-Cursed Soldier Soul', - name_color: '38f3ab', - type: 'Level 1 Cursed Soul', - market_name: 'Haunted Voodoo-Cursed Soldier Soul', - market_hash_name: 'Haunted Voodoo-Cursed Soldier Soul', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D12289692045334241370', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'haunted', - localized_category_name: 'Quality', - localized_tag_name: 'Haunted', - color: '38f3ab', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }], - }, false, false); + const econItem = parseEconItem( + { + appid: 440, + classid: '4044585817', + instanceid: '11040545', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', + descriptions: [ + { + value: 'Holiday Restriction: Halloween / Full Moon', + color: '756b5e', + }, + { + value: "''Halloween: Chromatic Corruption (spell only active during event)''", + color: '756b5e', + }, + { value: "''Sheen: sheen''", color: '756b5e' }, + { + value: "''Paint: paint''", + color: '756b5e', + }, + { value: "''Festivized''", color: '756b5e' }, + { + value: "''( Not Usable in Crafting )''", + color: '756b5e', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5618&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D12289692045334241370', + name: 'Inspect in Game...', + }, + ], + name: 'Haunted Voodoo-Cursed Soldier Soul', + name_color: '38f3ab', + type: 'Level 1 Cursed Soul', + market_name: 'Haunted Voodoo-Cursed Soldier Soul', + market_hash_name: 'Haunted Voodoo-Cursed Soldier Soul', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D12289692045334241370', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'haunted', + localized_category_name: 'Quality', + localized_tag_name: 'Haunted', + color: '38f3ab', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + ], + }, + false, + false + ); assert.deepEqual(econItem, { name: 'Voodoo-Cursed Soldier Soul', @@ -810,49 +1127,65 @@ describe('parseEconItem', () => { instanceid: '11040545', currency: 0, background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', - descriptions: [{ - value: 'Holiday Restriction: Halloween / Full Moon', color: '756b5e', - }, { value: '\'\'★ Unusual Effect: Burning Flames\'\'' }, { value: '\'\'★ Unusual Effect: Burning Flames\'\'' }], + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYwsVVB7whyJMhcrvCM2ACfIHnpRi4cBQjGc6xAQjNbuwYGMwJlfHWfAMDaRjpQm6CCVhsZJhUIW3r-9TZ0yx4-owIvoI', + descriptions: [ + { + value: 'Holiday Restriction: Halloween / Full Moon', + color: '756b5e', + }, + { value: "''★ Unusual Effect: Burning Flames''" }, + { value: "''★ Unusual Effect: Burning Flames''" }, + ], tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5618&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D12289692045334241370', - name: 'Inspect in Game...', - }], + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5618&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D12289692045334241370', + name: 'Inspect in Game...', + }, + ], name: 'Haunted Voodoo-Cursed Soldier Soul', name_color: '38f3ab', type: 'Level 1 Cursed Soul', market_name: 'Haunted Voodoo-Cursed Soldier Soul', market_hash_name: 'Haunted Voodoo-Cursed Soldier Soul', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D12289692045334241370', - name: 'Inspect in Game...', - }], + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D12289692045334241370', + name: 'Inspect in Game...', + }, + ], commodity: 0, market_tradable_restriction: 7, market_marketable_restriction: 0, marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'haunted', - localized_category_name: 'Quality', - localized_tag_name: 'Haunted', - color: '38f3ab', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }], + tags: [ + { + category: 'Quality', + internal_name: 'haunted', + localized_category_name: 'Quality', + localized_tag_name: 'Haunted', + color: '38f3ab', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + ], }); assert.deepEqual(econItem, { @@ -874,54 +1207,84 @@ describe('parseEconItem', () => { }); it('Case #11', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '2871127490', - instanceid: '3522129930', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwsUWBjqvy1Nt8_pAfazBOESnN97vZQFgGVtyQUrbeW2ZjM_IFHGA_JYC_BuoQ7qDyJlusVnUdO1orpQfRKv6tW-OVvZVQ', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwsUWBjqvy1Nt8_pAfazBOESnN97vZQFgGVtyQUrbeW2ZjM_IFHGA_JYC_BuoQ7qDyJlusVnUdO1orpQfRKv6tW-OVvZVQ', - icon_drag_url: '', - name: 'Strange Australium Blutsauger', - market_hash_name: 'Strange Australium Blutsauger', - market_name: 'Strange Australium Blutsauger', - name_color: 'CF6A32', - background_color: '3C352E', - type: 'Strange Syringe Gun - Kills: 20', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: '(Cloaked Spies Killed: 0)', color: '756b5e', - }, { - value: '\'\'(Killstreaks Ended: 0)\'\'', color: '756b5e', - }, { - value: '(Scouts Killed: 0)', color: '756b5e', - }, { - value: 'On Hit: Gain up to +3 health', color: '7ea9d1', - }, { - value: '-2 health drained per second on wearer', color: 'd83636', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=36&lang=en_US', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Medic', name: 'Medic', category: 'Class', category_name: 'Class', - }], - app_data: { - def_index: '36', quality: '11', + const econItem = parseEconItem( + { + appid: '440', + classid: '2871127490', + instanceid: '3522129930', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwsUWBjqvy1Nt8_pAfazBOESnN97vZQFgGVtyQUrbeW2ZjM_IFHGA_JYC_BuoQ7qDyJlusVnUdO1orpQfRKv6tW-OVvZVQ', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwsUWBjqvy1Nt8_pAfazBOESnN97vZQFgGVtyQUrbeW2ZjM_IFHGA_JYC_BuoQ7qDyJlusVnUdO1orpQfRKv6tW-OVvZVQ', + icon_drag_url: '', + name: 'Strange Australium Blutsauger', + market_hash_name: 'Strange Australium Blutsauger', + market_name: 'Strange Australium Blutsauger', + name_color: 'CF6A32', + background_color: '3C352E', + type: 'Strange Syringe Gun - Kills: 20', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: '(Cloaked Spies Killed: 0)', + color: '756b5e', + }, + { + value: "''(Killstreaks Ended: 0)''", + color: '756b5e', + }, + { + value: '(Scouts Killed: 0)', + color: '756b5e', + }, + { + value: 'On Hit: Gain up to +3 health', + color: '7ea9d1', + }, + { + value: '-2 health drained per second on wearer', + color: 'd83636', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=36&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Medic', + name: 'Medic', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { + def_index: '36', + quality: '11', + }, }, - }, false, false); + false, + false + ); assert.deepEqual(econItem, { name: 'Blutsauger', @@ -943,153 +1306,245 @@ describe('parseEconItem', () => { }); it('Case #12', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '2625497429', - instanceid: '4048537137', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_drag_url: '', - name: 'Shell Shocker Rocket Launcher', - market_hash_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - market_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - name_color: 'CF6A32', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Assassin Grade Rocket Launcher (Battle Scarred)', color: 'd32ce6', - }, { - value: 'Strange Stat Clock Attached', color: 'CF6A32', - }, { - value: ' Kills: 5121', color: '756b5e', - }, { - value: ' Pyros Killed: 712', color: '756b5e', - }, { - value: 'Team Colored Decorated Weapon', - }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { - value: 'Sheen: Mean Green', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: ' ', - }, { - value: ' ', - }, { - value: 'Powerhouse Collection', - }, { - value: ' Liquid Asset Stickybomb Launcher', color: 'eb4b4b', app_data: { - def_index: '15045', - }, - }, { - value: ' Thunderbolt Sniper Rifle', color: 'eb4b4b', app_data: { - def_index: '15059', - }, - }, { - value: ' Current Event Scattergun', color: 'd32ce6', app_data: { - def_index: '15053', - }, - }, { - value: ' Pink Elephant Stickybomb Launcher', color: 'd32ce6', app_data: { - def_index: '15048', - }, - }, { - value: '✔ Shell Shocker Rocket Launcher', color: 'd32ce6', app_data: { + const econItem = parseEconItem( + { + appid: '440', + classid: '2625497429', + instanceid: '4048537137', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_drag_url: '', + name: 'Shell Shocker Rocket Launcher', + market_hash_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + market_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + name_color: 'CF6A32', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Assassin Grade Rocket Launcher (Battle Scarred)', + color: 'd32ce6', + }, + { + value: 'Strange Stat Clock Attached', + color: 'CF6A32', + }, + { + value: ' Kills: 5121', + color: '756b5e', + }, + { + value: ' Pyros Killed: 712', + color: '756b5e', + }, + { + value: 'Team Colored Decorated Weapon', + }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Sheen: Mean Green', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: ' ', + }, + { + value: ' ', + }, + { + value: 'Powerhouse Collection', + }, + { + value: ' Liquid Asset Stickybomb Launcher', + color: 'eb4b4b', + app_data: { + def_index: '15045', + }, + }, + { + value: ' Thunderbolt Sniper Rifle', + color: 'eb4b4b', + app_data: { + def_index: '15059', + }, + }, + { + value: ' Current Event Scattergun', + color: 'd32ce6', + app_data: { + def_index: '15053', + }, + }, + { + value: ' Pink Elephant Stickybomb Launcher', + color: 'd32ce6', + app_data: { + def_index: '15048', + }, + }, + { + value: '✔ Shell Shocker Rocket Launcher', + color: 'd32ce6', + app_data: { + def_index: '15052', + }, + }, + { + value: ' Flash Fryer Flame Thrower', + color: '8847ff', + app_data: { + def_index: '15049', + }, + }, + { + value: ' Spark of Life Medi Gun', + color: '8847ff', + app_data: { + def_index: '15050', + }, + }, + { + value: ' Dead Reckoner Revolver', + color: '8847ff', + app_data: { + def_index: '15051', + }, + }, + { + value: ' Black Dahlia Pistol', + color: '8847ff', + app_data: { + def_index: '15046', + }, + }, + { + value: ' Sandstone Special Pistol', + color: '8847ff', + app_data: { + def_index: '15056', + }, + }, + { + value: ' Brick House Minigun', + color: '4b69ff', + app_data: { + def_index: '15055', + }, + }, + { + value: ' Aqua Marine Rocket Launcher', + color: '4b69ff', + app_data: { + def_index: '15057', + }, + }, + { + value: ' Low Profile SMG', + color: '4b69ff', + app_data: { + def_index: '15058', + }, + }, + { + value: ' Turbine Torcher Flame Thrower', + color: '4b69ff', + app_data: { + def_index: '15054', + }, + }, + { + value: ' Lightning Rod Shotgun', + color: '4b69ff', + app_data: { + def_index: '15047', + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Legendary', + name: 'Assassin', + category: 'Rarity', + color: 'd32ce6', + category_name: 'Grade', + }, + { + internal_name: 'Powerhouse_collection', + name: 'Powerhouse Collection', + category: 'Collection', + category_name: 'Collection', + }, + { + internal_name: 'TFUI_InvTooltip_BattleScared', + name: 'Battle Scarred', + category: 'Exterior', + category_name: 'Exterior', + }, + ], + app_data: { def_index: '15052', + quality: '11', }, - }, { - value: ' Flash Fryer Flame Thrower', color: '8847ff', app_data: { - def_index: '15049', - }, - }, { - value: ' Spark of Life Medi Gun', color: '8847ff', app_data: { - def_index: '15050', - }, - }, { - value: ' Dead Reckoner Revolver', color: '8847ff', app_data: { - def_index: '15051', - }, - }, { - value: ' Black Dahlia Pistol', color: '8847ff', app_data: { - def_index: '15046', - }, - }, { - value: ' Sandstone Special Pistol', color: '8847ff', app_data: { - def_index: '15056', - }, - }, { - value: ' Brick House Minigun', color: '4b69ff', app_data: { - def_index: '15055', - }, - }, { - value: ' Aqua Marine Rocket Launcher', color: '4b69ff', app_data: { - def_index: '15057', - }, - }, { - value: ' Low Profile SMG', color: '4b69ff', app_data: { - def_index: '15058', - }, - }, { - value: ' Turbine Torcher Flame Thrower', color: '4b69ff', app_data: { - def_index: '15054', - }, - }, { - value: ' Lightning Rod Shotgun', color: '4b69ff', app_data: { - def_index: '15047', - }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Rarity_Legendary', - name: 'Assassin', - category: 'Rarity', - color: 'd32ce6', - category_name: 'Grade', - }, { - internal_name: 'Powerhouse_collection', - name: 'Powerhouse Collection', - category: 'Collection', - category_name: 'Collection', - }, { - internal_name: 'TFUI_InvTooltip_BattleScared', - name: 'Battle Scarred', - category: 'Exterior', - category_name: 'Exterior', - }], - app_data: { - def_index: '15052', quality: '11', }, - }, false, false); + false, + false + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + fullName: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA/', tradable: true, @@ -1116,12 +1571,16 @@ describe('parseEconItem', () => { appid: '440', classid: '1348131292', instanceid: '93028938', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', icon_drag_url: '', name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_hash_name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_name: 'Strange Professional Killstreak Festive Grenade Launcher', + market_hash_name: + 'Strange Professional Killstreak Festive Grenade Launcher', + market_name: + 'Strange Professional Killstreak Festive Grenade Launcher', name_color: 'CF6A32', background_color: '3C352E', type: 'Limited Strange Grenade Launcher - Kills: 20', @@ -1130,26 +1589,46 @@ describe('parseEconItem', () => { commodity: 0, market_tradable_restriction: '7', market_marketable_restriction: '0', - descriptions: [{ value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, { - value: 'Halloween: Exorcism (spell only active during event)', color: '7ea9d1', - }, { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, { - value: 'Sheen: Manndarin', color: '7ea9d1', - }, { value: 'Killstreaks Active', color: '7ea9d1' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }], + descriptions: [ + { value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, + { + value: 'Halloween: Exorcism (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, + { + value: 'Sheen: Manndarin', + color: '7ea9d1', + }, + { value: 'Killstreaks Active', color: '7ea9d1' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + ], app_data: { def_index: '1007', quality: '11' }, }); @@ -1157,7 +1636,8 @@ describe('parseEconItem', () => { classes: ['Demoman'], commodity: false, craftable: true, - fullName: 'Strange Professional Killstreak Festive Grenade Launcher', + fullName: + 'Strange Professional Killstreak Festive Grenade Launcher', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY/', killstreak: 'Professional Killstreak', @@ -1179,12 +1659,16 @@ describe('parseEconItem', () => { appid: '440', classid: '1342604629', instanceid: '98275077', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgENYwUuWCT1qj1Ni8DZCv2ADN8Mmsgy4N4Hi2JtxQMtbOftYG9hJgabUaYMCvFroV_uDXBkv8EwVY_koOxWeQq-qsKYZPpiOaow', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgENYwUuWCT1qj1Ni8DZCv2ADN8Mmsgy4N4Hi2JtxQMtbOftYG9hJgabUaYMCvFroV_uDXBkv8EwVY_koOxWeQq-qsKYZPpiOaow', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgENYwUuWCT1qj1Ni8DZCv2ADN8Mmsgy4N4Hi2JtxQMtbOftYG9hJgabUaYMCvFroV_uDXBkv8EwVY_koOxWeQq-qsKYZPpiOaow', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgENYwUuWCT1qj1Ni8DZCv2ADN8Mmsgy4N4Hi2JtxQMtbOftYG9hJgabUaYMCvFroV_uDXBkv8EwVY_koOxWeQq-qsKYZPpiOaow', icon_drag_url: '', name: 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', - market_hash_name: 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', - market_name: 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', + market_hash_name: + 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', + market_name: + 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', name_color: 'CF6A32', background_color: '3C352E', type: 'Strange Wrench - Sentry Kills: 12', @@ -1193,26 +1677,45 @@ describe('parseEconItem', () => { commodity: 0, market_tradable_restriction: '7', market_marketable_restriction: '0', - descriptions: [{ value: '(Kills: 1)', color: '756b5e' }, { - value: '(Cloaked Spies Killed: 0)', color: '756b5e', - }, { value: 'Sheen: Deadly Daffodil', color: '7ea9d1' }, { value: 'Killstreaks Active', color: '7ea9d1' }, { - value: 'Upgrades, repairs and speeds up construction of friendly buildings on hit', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=969&lang=en_US', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'melee', name: 'Melee weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Engineer', name: 'Engineer', category: 'Class', category_name: 'Class', - }], + descriptions: [ + { value: '(Kills: 1)', color: '756b5e' }, + { + value: '(Cloaked Spies Killed: 0)', + color: '756b5e', + }, + { value: 'Sheen: Deadly Daffodil', color: '7ea9d1' }, + { value: 'Killstreaks Active', color: '7ea9d1' }, + { + value: 'Upgrades, repairs and speeds up construction of friendly buildings on hit', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=969&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'melee', + name: 'Melee weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Engineer', + name: 'Engineer', + category: 'Class', + category_name: 'Class', + }, + ], app_data: { def_index: '969', quality: '11' }, }); @@ -1226,7 +1729,8 @@ describe('parseEconItem', () => { classes: ['Engineer'], commodity: false, craftable: true, - fullName: 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', + fullName: + 'Strange Specialized Killstreak Gold Botkiller Wrench Mk.II', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgENYwUuWCT1qj1Ni8DZCv2ADN8Mmsgy4N4Hi2JtxQMtbOftYG9hJgabUaYMCvFroV_uDXBkv8EwVY_koOxWeQq-qsKYZPpiOaow/', killstreak: 'Specialized Killstreak', @@ -1237,47 +1741,76 @@ describe('parseEconItem', () => { }); it('Case #15', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '11042149', - instanceid: '19201223', - icon_url: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_url_large: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_drag_url: '', - name: 'The Essential Accessories', - market_hash_name: 'The Essential Accessories', - market_name: 'The Essential Accessories', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Limited Level 10 Apparel', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Paint Color: Operator\'s Overalls', color: '756b5e', - }, { value: '' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'misc', name: 'Cosmetic', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '347', quality: '6' }, - }, false, false); + const econItem = parseEconItem( + { + appid: '440', + classid: '11042149', + instanceid: '19201223', + icon_url: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_url_large: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_drag_url: '', + name: 'The Essential Accessories', + market_hash_name: 'The Essential Accessories', + market_name: 'The Essential Accessories', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Limited Level 10 Apparel', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "Paint Color: Operator's Overalls", + color: '756b5e', + }, + { value: '' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '347', quality: '6' }, + }, + false, + false + ); assert.deepEqual(econItem, { classes: ['Scout'], @@ -1288,7 +1821,7 @@ describe('parseEconItem', () => { img: 'https://steamcommunity-a.akamaihd.net/economy/image/IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU/', marketable: true, name: 'The Essential Accessories', - paint: 'Operator\'s Overalls', + paint: "Operator's Overalls", parts: [], quality: 'Unique', spells: [], @@ -1299,105 +1832,135 @@ describe('parseEconItem', () => { }); it('Case #16', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '11369034375', - classid: '107357853', - instanceid: '55426782', - amount: 1, - missing: false, - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', - icon_drag_url: '', - name: 'The Barnstormer #96', - market_hash_name: 'The Barnstormer', - market_name: 'The Barnstormer', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 26 Hat', - tradable: true, - marketable: false, - commodity: false, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - fraudwarnings: [], - descriptions: [{ - type: 'text', value: 'Style: Bugscreen Up', color: '756b5e', app_data: '', - }, { - type: 'text', - value: 'Step into the headgear and facial hair of America\'s favorite aviator/filmmaker/toenail-and-Jarate collector with this hotshot aviator hat and rakish movie star moustache.', - app_data: '', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=988&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20Snullwner_steamid%A%assetid%D912555605796804870', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D912555605796804870', - }], - tags: [{ - internal_name: 'Unique', - name: 'Unique', - category: 'Quality', - color: '7D6D00', - category_name: 'Quality', - localized_tag_name: 'Unique', - localized_category_name: 'Quality', - }, { - internal_name: 'misc', - name: 'Cosmetic', - category: 'Type', - category_name: 'Type', - localized_tag_name: 'Cosmetic', - color: '', - localized_category_name: 'Type', - }, { - internal_name: 'Engineer', - name: 'Engineer', - category: 'Class', - category_name: 'Class', - localized_tag_name: 'Engineer', - color: '', - localized_category_name: 'Class', - }], - app_data: { - def_index: '988', quality: '6', slot: 'Cosmetic', filter_data: { - 931505789: { - element_ids: { - 0: '991457757', 1: '8', - }, - }, 1662615936: { - element_ids: { - 0: '991457757', 1: '9', - }, - }, - }, player_class_ids: { - 0: '9', - }, highlight_color: '7a6e65', - }, - id: '11369034375', - owner_descriptions: [], - owner_actions: [], - }, false, false); - - assert.deepEqual(econItem, { - classes: ['Engineer'], - commodity: false, - craftable: true, - fullName: 'Barnstormer #96', - itemNumber: { - value: 96, type: 'craft', - }, - id: '11369034375', - img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ/', - name: 'Barnstormer', - parts: [], - quality: 'Unique', + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '11369034375', + classid: '107357853', + instanceid: '55426782', + amount: 1, + missing: false, + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', + icon_drag_url: '', + name: 'The Barnstormer #96', + market_hash_name: 'The Barnstormer', + market_name: 'The Barnstormer', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 26 Hat', + tradable: true, + marketable: false, + commodity: false, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + fraudwarnings: [], + descriptions: [ + { + type: 'text', + value: 'Style: Bugscreen Up', + color: '756b5e', + app_data: '', + }, + { + type: 'text', + value: "Step into the headgear and facial hair of America's favorite aviator/filmmaker/toenail-and-Jarate collector with this hotshot aviator hat and rakish movie star moustache.", + app_data: '', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=988&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20Snullwner_steamid%A%assetid%D912555605796804870', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D912555605796804870', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + localized_tag_name: 'Unique', + localized_category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + localized_tag_name: 'Cosmetic', + color: '', + localized_category_name: 'Type', + }, + { + internal_name: 'Engineer', + name: 'Engineer', + category: 'Class', + category_name: 'Class', + localized_tag_name: 'Engineer', + color: '', + localized_category_name: 'Class', + }, + ], + app_data: { + def_index: '988', + quality: '6', + slot: 'Cosmetic', + filter_data: { + 931505789: { + element_ids: { + 0: '991457757', + 1: '8', + }, + }, + 1662615936: { + element_ids: { + 0: '991457757', + 1: '9', + }, + }, + }, + player_class_ids: { + 0: '9', + }, + highlight_color: '7a6e65', + }, + id: '11369034375', + owner_descriptions: [], + owner_actions: [], + }, + false, + false + ); + + assert.deepEqual(econItem, { + classes: ['Engineer'], + commodity: false, + craftable: true, + fullName: 'Barnstormer #96', + itemNumber: { + value: 96, + type: 'craft', + }, + id: '11369034375', + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ/', + name: 'Barnstormer', + parts: [], + quality: 'Unique', spells: [], tradable: true, type: 'misc', @@ -1408,93 +1971,125 @@ describe('parseEconItem', () => { }); it('Case #17', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '11369034375', - classid: '107357853', - instanceid: '55426782', - amount: 1, - missing: false, - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', - icon_drag_url: '', - name: '\'\'The Barnstormer #96\'\'', - market_hash_name: 'The Barnstormer', - market_name: 'The Barnstormer', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 26 Hat', - tradable: true, - marketable: false, - commodity: false, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - fraudwarnings: ['This item has been renamed.\nOriginal name: "The Barnstormer #103"'], - descriptions: [{ - type: 'text', value: 'Style: Bugscreen Up', color: '756b5e', app_data: '', - }, { - type: 'text', - value: 'Step into the headgear and facial hair of America\'s favorite aviator/filmmaker/toenail-and-Jarate collector with this hotshot aviator hat and rakish movie star moustache.', - app_data: '', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=988&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20Snullwner_steamid%A%assetid%D912555605796804870', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D912555605796804870', - }], - tags: [{ - internal_name: 'Unique', - name: 'Unique', - category: 'Quality', - color: '7D6D00', - category_name: 'Quality', - localized_tag_name: 'Unique', - localized_category_name: 'Quality', - }, { - internal_name: 'misc', - name: 'Cosmetic', - category: 'Type', - category_name: 'Type', - localized_tag_name: 'Cosmetic', - color: '', - localized_category_name: 'Type', - }, { - internal_name: 'Engineer', - name: 'Engineer', - category: 'Class', - category_name: 'Class', - localized_tag_name: 'Engineer', - color: '', - localized_category_name: 'Class', - }], - app_data: { - def_index: '988', quality: '6', slot: 'Cosmetic', filter_data: { - 931505789: { - element_ids: { - 0: '991457757', 1: '8', - }, - }, 1662615936: { - element_ids: { - 0: '991457757', 1: '9', - }, - }, - }, player_class_ids: { - 0: '9', - }, highlight_color: '7a6e65', + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '11369034375', + classid: '107357853', + instanceid: '55426782', + amount: 1, + missing: false, + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEOYgAYUx7nqgdBidroHuaDGu0FieUmtcFq1Td5lgQ1ZrPtZW5jJ1CaUKMOC_Zr9Vi4XnE36cQxDIXl9e9WeArptNSSMrUvNcYMQZftGxgDiQ', + icon_drag_url: '', + name: "''The Barnstormer #96''", + market_hash_name: 'The Barnstormer', + market_name: 'The Barnstormer', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 26 Hat', + tradable: true, + marketable: false, + commodity: false, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "The Barnstormer #103"', + ], + descriptions: [ + { + type: 'text', + value: 'Style: Bugscreen Up', + color: '756b5e', + app_data: '', + }, + { + type: 'text', + value: "Step into the headgear and facial hair of America's favorite aviator/filmmaker/toenail-and-Jarate collector with this hotshot aviator hat and rakish movie star moustache.", + app_data: '', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=988&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20Snullwner_steamid%A%assetid%D912555605796804870', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D912555605796804870', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + localized_tag_name: 'Unique', + localized_category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + localized_tag_name: 'Cosmetic', + color: '', + localized_category_name: 'Type', + }, + { + internal_name: 'Engineer', + name: 'Engineer', + category: 'Class', + category_name: 'Class', + localized_tag_name: 'Engineer', + color: '', + localized_category_name: 'Class', + }, + ], + app_data: { + def_index: '988', + quality: '6', + slot: 'Cosmetic', + filter_data: { + 931505789: { + element_ids: { + 0: '991457757', + 1: '8', + }, + }, + 1662615936: { + element_ids: { + 0: '991457757', + 1: '9', + }, + }, + }, + player_class_ids: { + 0: '9', + }, + highlight_color: '7a6e65', + }, + id: '11369034375', + owner_descriptions: [], + owner_actions: [], }, - id: '11369034375', - owner_descriptions: [], - owner_actions: [], - }, false, false, { - itemNumberFromFraudWarning: true, - }); + false, + false, + { + itemNumberFromFraudWarning: true, + } + ); assert.deepEqual(econItem, { classes: ['Engineer'], @@ -1513,80 +2108,153 @@ describe('parseEconItem', () => { marketable: false, isUniqueHat: true, itemNumber: { - value: 103, type: 'craft', + value: 103, + type: 'craft', }, }); }); it('Case #18', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '1848848533', - instanceid: '4005345694', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', - icon_drag_url: '', - name: 'Mann Co. Supply Munition Series #103', - market_hash_name: 'Mann Co. Supply Munition #103', - market_name: 'Mann Co. Supply Munition #103', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 20 Supply Crate', - tradable: 1, - marketable: 1, - commodity: 1, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ value: 'Crate Series #103', color: '7ea9d1' }, { - value: 'You need a Mann Co. Supply Crate Key to open this.\nYou can pick one up at the Mann Co. Store.', - }, { value: '\nGift from: MothmanOfficial', color: '7ea9d1' }, { - value: 'Date Received: Sunday, September 20, 2020 (13:59:02) GMT', - }, { value: ' ' }, { - value: 'This crate contains one of the following items.\nWeapons will be Strange quality.', - }, { - value: ' The Iron Bomber', color: '6F6A63', app_data: { def_index: '1151' }, - }, { - value: ' The Panic Attack', color: '6F6A63', app_data: { def_index: '1153' }, - }, { - value: ' The Back Scatter', color: '6F6A63', app_data: { def_index: '1103' }, - }, { - value: ' The Quickiebomb Launcher', color: '6F6A63', app_data: { def_index: '1150' }, - }, { - value: ' The Ambassador', color: '6F6A63', app_data: { def_index: '61' }, - }, { - value: ' The Reserve Shooter', color: '6F6A63', app_data: { def_index: '415' }, - }, { - value: ' The Degreaser', color: '6F6A63', app_data: { def_index: '215' }, - }, { - value: ' The Powerjack', color: '6F6A63', app_data: { def_index: '214' }, - }, { - value: ' Natascha', color: '6F6A63', app_data: { def_index: '41' }, - }, { - value: ' The Sandvich', color: '6F6A63', app_data: { def_index: '42' }, - }, { - value: ' Strange Part: Damage Dealt', color: '6F6A63', app_data: { def_index: '6056' }, - }, { - value: ' Strange Part: Allied Healing Done', color: '6F6A63', app_data: { def_index: '6058' }, - }, { - value: ' Strange Part: Critical Kills', color: '6F6A63', app_data: { def_index: '6021' }, - }, { - value: ' Strange Part: Pyros Killed', color: '6F6A63', app_data: { def_index: '6006' }, - }, { - value: ' Strange Part: Heavies Killed', color: '6F6A63', app_data: { def_index: '6000' }, - }, { - value: 'or an Exceedingly Rare Special Item!', color: '7ea9d1', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5859&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'Supply Crate', name: 'Crate', category: 'Type', category_name: 'Type', - }], - app_data: { def_index: '5859', quality: '6' }, - }, false, false); + const econItem = parseEconItem( + { + appid: '440', + classid: '1848848533', + instanceid: '4005345694', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', + icon_drag_url: '', + name: 'Mann Co. Supply Munition Series #103', + market_hash_name: 'Mann Co. Supply Munition #103', + market_name: 'Mann Co. Supply Munition #103', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 20 Supply Crate', + tradable: 1, + marketable: 1, + commodity: 1, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { value: 'Crate Series #103', color: '7ea9d1' }, + { + value: 'You need a Mann Co. Supply Crate Key to open this.\nYou can pick one up at the Mann Co. Store.', + }, + { value: '\nGift from: MothmanOfficial', color: '7ea9d1' }, + { + value: 'Date Received: Sunday, September 20, 2020 (13:59:02) GMT', + }, + { value: ' ' }, + { + value: 'This crate contains one of the following items.\nWeapons will be Strange quality.', + }, + { + value: ' The Iron Bomber', + color: '6F6A63', + app_data: { def_index: '1151' }, + }, + { + value: ' The Panic Attack', + color: '6F6A63', + app_data: { def_index: '1153' }, + }, + { + value: ' The Back Scatter', + color: '6F6A63', + app_data: { def_index: '1103' }, + }, + { + value: ' The Quickiebomb Launcher', + color: '6F6A63', + app_data: { def_index: '1150' }, + }, + { + value: ' The Ambassador', + color: '6F6A63', + app_data: { def_index: '61' }, + }, + { + value: ' The Reserve Shooter', + color: '6F6A63', + app_data: { def_index: '415' }, + }, + { + value: ' The Degreaser', + color: '6F6A63', + app_data: { def_index: '215' }, + }, + { + value: ' The Powerjack', + color: '6F6A63', + app_data: { def_index: '214' }, + }, + { + value: ' Natascha', + color: '6F6A63', + app_data: { def_index: '41' }, + }, + { + value: ' The Sandvich', + color: '6F6A63', + app_data: { def_index: '42' }, + }, + { + value: ' Strange Part: Damage Dealt', + color: '6F6A63', + app_data: { def_index: '6056' }, + }, + { + value: ' Strange Part: Allied Healing Done', + color: '6F6A63', + app_data: { def_index: '6058' }, + }, + { + value: ' Strange Part: Critical Kills', + color: '6F6A63', + app_data: { def_index: '6021' }, + }, + { + value: ' Strange Part: Pyros Killed', + color: '6F6A63', + app_data: { def_index: '6006' }, + }, + { + value: ' Strange Part: Heavies Killed', + color: '6F6A63', + app_data: { def_index: '6000' }, + }, + { + value: 'or an Exceedingly Rare Special Item!', + color: '7ea9d1', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5859&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'Supply Crate', + name: 'Crate', + category: 'Type', + category_name: 'Type', + }, + ], + app_data: { def_index: '5859', quality: '6' }, + }, + false, + false + ); assert.deepEqual(econItem, { classes: [], @@ -1594,7 +2262,8 @@ describe('parseEconItem', () => { craftable: true, fullName: 'Mann Co. Supply Munition #103', itemNumber: { - value: 103, type: 'crate', + value: 103, + type: 'crate', }, id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw/', @@ -1610,60 +2279,89 @@ describe('parseEconItem', () => { }); it('Case #20', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '11123436', - instanceid: '11040559', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEGaQMQUSTuuSpEjYa_X6fbCbJVn9tht8BU2zNoxwQrZ-bmaGIwdgLHWKFbC_Y4pl3uDSQzptdtU17jE20T', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEGaQMQUSTuuSpEjYa_X6fbCbJVn9tht8BU2zNoxwQrZ-bmaGIwdgLHWKFbC_Y4pl3uDSQzptdtU17jE20T', - icon_drag_url: '', - name: 'Gentle Manne\'s Service Medal', - market_hash_name: 'Gentle Manne\'s Service Medal', - market_name: 'Gentle Manne\'s Service Medal', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Limited Level 100 Medal', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Medal no. 10615', - }, { - value: 'Given to those few brave soldiers whom stood guard valiantly without sleep, nourishment, or a social life.', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=121&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D146016106330552325', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D146016106330552325', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'misc', name: 'Cosmetic', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }], - app_data: { - def_index: '121', quality: '6', + const econItem = parseEconItem( + { + appid: '440', + classid: '11123436', + instanceid: '11040559', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEGaQMQUSTuuSpEjYa_X6fbCbJVn9tht8BU2zNoxwQrZ-bmaGIwdgLHWKFbC_Y4pl3uDSQzptdtU17jE20T', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEGaQMQUSTuuSpEjYa_X6fbCbJVn9tht8BU2zNoxwQrZ-bmaGIwdgLHWKFbC_Y4pl3uDSQzptdtU17jE20T', + icon_drag_url: '', + name: "Gentle Manne's Service Medal", + market_hash_name: "Gentle Manne's Service Medal", + market_name: "Gentle Manne's Service Medal", + name_color: '7D6D00', + background_color: '3C352E', + type: 'Limited Level 100 Medal', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Medal no. 10615', + }, + { + value: 'Given to those few brave soldiers whom stood guard valiantly without sleep, nourishment, or a social life.', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=121&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D146016106330552325', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D146016106330552325', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { + def_index: '121', + quality: '6', + }, }, - }, false, false); + false, + false + ); assert.deepEqual(econItem, { classes: ['Soldier'], commodity: false, craftable: true, - fullName: 'Gentle Manne\'s Service Medal #10615', + fullName: "Gentle Manne's Service Medal #10615", id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEGaQMQUSTuuSpEjYa_X6fbCbJVn9tht8BU2zNoxwQrZ-bmaGIwdgLHWKFbC_Y4pl3uDSQzptdtU17jE20T/', - name: 'Gentle Manne\'s Service Medal', + name: "Gentle Manne's Service Medal", parts: [], quality: 'Unique', spells: [], @@ -1672,198 +2370,400 @@ describe('parseEconItem', () => { level: -1, marketable: true, itemNumber: { - type: 'medal', value: 10615, + type: 'medal', + value: 10615, }, }); }); it('Case #19', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '4657007866', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_drag_url: '', - name: 'Winter 2021 Cosmetic Case', - market_hash_name: 'Winter 2021 Cosmetic Case', - market_name: 'Winter 2021 Cosmetic Case', - name_color: '7D6D00', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 1, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', - }, { value: ' ' }, { - value: 'Contents may be Strange or an Unusual Winter 2021 Hat', color: '7ea9d1', - }, { value: ' ' }, { value: ' ' }, { value: 'Winter 2021 Cosmetics Collection' }, { - value: ' Oh Deer!', color: 'eb4b4b', app_data: { def_index: '31245' }, - }, { - value: ' Jolly Jester', color: 'd32ce6', app_data: { def_index: '31243' }, - }, { - value: ' Merry Cone', color: 'd32ce6', app_data: { def_index: '31247' }, - }, { - value: ' Hat Chocolate', color: 'd32ce6', app_data: { def_index: '31259' }, - }, { - value: ' Elf-Made Bandanna', color: '8847ff', app_data: { def_index: '31260' }, - }, { - value: ' Seasonal Spring', color: '8847ff', app_data: { def_index: '31244' }, - }, { - value: ' Elf Ignition', color: '8847ff', app_data: { def_index: '31253' }, - }, { - value: ' Train Of Thought', color: '8847ff', app_data: { def_index: '31254' }, - }, { - value: ' Seasonal Employee', color: '8847ff', app_data: { def_index: '31258' }, - }, { - value: ' Reindoonihorns', color: '8847ff', app_data: { def_index: '31249' }, - }, { - value: ' Festive Cover-Up', color: '4b69ff', app_data: { def_index: '31257' }, - }, { - value: ' El Fiestibrero', color: '4b69ff', app_data: { def_index: '31241' }, - }, { - value: ' Ominous Offering', color: '4b69ff', app_data: { def_index: '31251' }, - }, { - value: ' Brain Cane', color: '4b69ff', app_data: { def_index: '31248' }, - }, { - value: ' Cozy Catchers', color: '4b69ff', app_data: { def_index: '31250' }, - }, { - value: ' The Giftcrafter', color: '4b69ff', app_data: { def_index: '31246' }, - }, { - value: ' Festive Frames', color: '4b69ff', app_data: { def_index: '31252' }, - }, { - value: ' Mooshanka', color: '4b69ff', app_data: { def_index: '31255' }, - }, { - value: ' Elf Defense', color: '4b69ff', app_data: { def_index: '31256' }, - }, { - value: ' Gnome Dome', color: '4b69ff', app_data: { def_index: '31242' }, - }, { value: ' ' }, { value: 'Case Exclusive Bonus Item(s):' }, { - value: 'Festivizer', color: '6F6A63', app_data: { def_index: '5839' }, - }, { value: ' ' }, { value: 'Case Global Unusual Effect(s)' }, { - value: '★ Unusual Effect: Green Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Haunted Ghosts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Green Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling TF Logo', color: 'ffd700', - }, { - value: '★ Unusual Effect: Massed Flies', color: 'ffd700', - }, { - value: '★ Unusual Effect: Burning Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Scorching Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Searing Plasma', color: 'ffd700', - }, { - value: '★ Unusual Effect: Vivid Plasma', color: 'ffd700', - }, { value: '★ Unusual Effect: Sunbeams', color: 'ffd700' }, { - value: '★ Unusual Effect: Circling Peace Sign', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling Heart', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stormy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Blizzardy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Nuts n\' Bolts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Planets', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Fire', color: 'ffd700', - }, { value: '★ Unusual Effect: Bubbling', color: 'ffd700' }, { - value: '★ Unusual Effect: Smoking', color: 'ffd700', - }, { value: '★ Unusual Effect: Steaming', color: 'ffd700' }, { - value: '★ Unusual Effect: Kill-a-Watt', color: 'ffd700', - }, { value: '★ Unusual Effect: Terror-Watt', color: 'ffd700' }, { - value: '★ Unusual Effect: Cloud 9', color: 'ffd700', - }, { value: '★ Unusual Effect: Aces High', color: 'ffd700' }, { - value: '★ Unusual Effect: Dead Presidents', color: 'ffd700', - }, { - value: '★ Unusual Effect: Miami Nights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Disco Beat Down', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Hospitable Festivity', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Sparkling Spruce', color: 'ffd700', - }, { - value: '★ Unusual Effect: Glittering Juniper', color: 'ffd700', - }, { - value: '★ Unusual Effect: Prismatic Pine', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Twisting Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stardust Pathway', color: 'ffd700', - }, { value: '★ Unusual Effect: Flurry Rush', color: 'ffd700' }, { - value: '★ Unusual Effect: Spark of Smissmas', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Shining Stag', color: 'ffd700', - }, { - value: '★ Unusual Effect: Holiday Horns', color: 'ffd700', - }, { - value: '★ Unusual Effect: Ardent Antlers', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { value: ' ' }, { value: 'Case Global Bonus Item(s)' }, { - value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', - }, { - value: 'Inspect for full list of unusual effects and more details', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'Supply Crate', name: 'Crate', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Winter2021Cosmetics_collection', - name: 'Winter 2021 Cosmetics Collection', - category: 'Collection', - category_name: 'Collection', - }], - app_data: { def_index: '5935', quality: '6' }, - }, false, false); + const econItem = parseEconItem( + { + appid: '440', + classid: '4657007866', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_drag_url: '', + name: 'Winter 2021 Cosmetic Case', + market_hash_name: 'Winter 2021 Cosmetic Case', + market_name: 'Winter 2021 Cosmetic Case', + name_color: '7D6D00', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 1, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', + }, + { value: ' ' }, + { + value: 'Contents may be Strange or an Unusual Winter 2021 Hat', + color: '7ea9d1', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Winter 2021 Cosmetics Collection' }, + { + value: ' Oh Deer!', + color: 'eb4b4b', + app_data: { def_index: '31245' }, + }, + { + value: ' Jolly Jester', + color: 'd32ce6', + app_data: { def_index: '31243' }, + }, + { + value: ' Merry Cone', + color: 'd32ce6', + app_data: { def_index: '31247' }, + }, + { + value: ' Hat Chocolate', + color: 'd32ce6', + app_data: { def_index: '31259' }, + }, + { + value: ' Elf-Made Bandanna', + color: '8847ff', + app_data: { def_index: '31260' }, + }, + { + value: ' Seasonal Spring', + color: '8847ff', + app_data: { def_index: '31244' }, + }, + { + value: ' Elf Ignition', + color: '8847ff', + app_data: { def_index: '31253' }, + }, + { + value: ' Train Of Thought', + color: '8847ff', + app_data: { def_index: '31254' }, + }, + { + value: ' Seasonal Employee', + color: '8847ff', + app_data: { def_index: '31258' }, + }, + { + value: ' Reindoonihorns', + color: '8847ff', + app_data: { def_index: '31249' }, + }, + { + value: ' Festive Cover-Up', + color: '4b69ff', + app_data: { def_index: '31257' }, + }, + { + value: ' El Fiestibrero', + color: '4b69ff', + app_data: { def_index: '31241' }, + }, + { + value: ' Ominous Offering', + color: '4b69ff', + app_data: { def_index: '31251' }, + }, + { + value: ' Brain Cane', + color: '4b69ff', + app_data: { def_index: '31248' }, + }, + { + value: ' Cozy Catchers', + color: '4b69ff', + app_data: { def_index: '31250' }, + }, + { + value: ' The Giftcrafter', + color: '4b69ff', + app_data: { def_index: '31246' }, + }, + { + value: ' Festive Frames', + color: '4b69ff', + app_data: { def_index: '31252' }, + }, + { + value: ' Mooshanka', + color: '4b69ff', + app_data: { def_index: '31255' }, + }, + { + value: ' Elf Defense', + color: '4b69ff', + app_data: { def_index: '31256' }, + }, + { + value: ' Gnome Dome', + color: '4b69ff', + app_data: { def_index: '31242' }, + }, + { value: ' ' }, + { value: 'Case Exclusive Bonus Item(s):' }, + { + value: 'Festivizer', + color: '6F6A63', + app_data: { def_index: '5839' }, + }, + { value: ' ' }, + { value: 'Case Global Unusual Effect(s)' }, + { + value: '★ Unusual Effect: Green Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Haunted Ghosts', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Green Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling TF Logo', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Massed Flies', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Burning Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Scorching Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Searing Plasma', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Vivid Plasma', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Sunbeams', color: 'ffd700' }, + { + value: '★ Unusual Effect: Circling Peace Sign', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling Heart', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stormy Storm', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Blizzardy Storm', + color: 'ffd700', + }, + { + value: "★ Unusual Effect: Nuts n' Bolts", + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Planets', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Fire', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Bubbling', color: 'ffd700' }, + { + value: '★ Unusual Effect: Smoking', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Steaming', color: 'ffd700' }, + { + value: '★ Unusual Effect: Kill-a-Watt', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Terror-Watt', color: 'ffd700' }, + { + value: '★ Unusual Effect: Cloud 9', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Aces High', color: 'ffd700' }, + { + value: '★ Unusual Effect: Dead Presidents', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Miami Nights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Disco Beat Down', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Hospitable Festivity', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Sparkling Spruce', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Glittering Juniper', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Prismatic Pine', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Twisting Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stardust Pathway', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Flurry Rush', color: 'ffd700' }, + { + value: '★ Unusual Effect: Spark of Smissmas', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Shining Stag', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Holiday Horns', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Ardent Antlers', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { value: ' ' }, + { value: 'Case Global Bonus Item(s)' }, + { + value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', + }, + { + value: 'Inspect for full list of unusual effects and more details', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'Supply Crate', + name: 'Crate', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Winter2021Cosmetics_collection', + name: 'Winter 2021 Cosmetics Collection', + category: 'Collection', + category_name: 'Collection', + }, + ], + app_data: { def_index: '5935', quality: '6' }, + }, + false, + false + ); assert.deepEqual(econItem, { classes: [], @@ -1885,133 +2785,208 @@ describe('parseEconItem', () => { }); it('Case #20 - Haunted Kraken', () => { - const econItem = parseEconItem({ - 'appid': '440', - 'classid': '5019702566', - 'instanceid': '286161456', - 'icon_url': 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYggGXxTjqjx8gMnyMv6NGucF1YNk4cgHiWNqxVUpZLflNGY_dAGSA_laWqw4o1u6XnZh65Y1VYa0puhIOVK4cLUhzmI', - 'icon_url_large': 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYggGXxTjqjx8gMnyMv6NGucF1YNk4cgHiWNqxVUpZLflNGY_dAGSA_laWqw4o1u6XnZh65Y1VYa0puhIOVK4cLUhzmI', - 'icon_drag_url': '', - 'name': 'Unusual Airdog', - 'market_hash_name': 'Unusual Airdog', - 'market_name': 'Unusual Airdog', - 'name_color': '8650AC', - 'background_color': '3C352E', - 'type': 'Level 7 Helmet', - 'tradable': 1, - 'marketable': 1, - 'commodity': 0, - 'market_tradable_restriction': '7', - 'market_marketable_restriction': '0', - 'descriptions': [{ - 'value': 'Mercenary Grade Helmet', 'color': '4b69ff', - }, { - 'value': '★ Unusual Effect: Haunted Kraken', 'color': 'ffd700', - }, { - 'value': '', - }, { - 'value': ' ', - }, { - 'value': ' ', - }, { - 'value': 'Mayflower Cosmetics Collection', - }, { - 'value': ' Bedouin Bandana', 'color': 'eb4b4b', 'app_data': { - 'def_index': '30768', - }, - }, { - 'value': ' The Dead Head', 'color': 'eb4b4b', 'app_data': { - 'def_index': '30775', - }, - }, { - 'value': ' The Dayjogger', 'color': 'd32ce6', 'app_data': { - 'def_index': '30779', - }, - }, { - 'value': ' Dad Duds', 'color': 'd32ce6', 'app_data': { - 'def_index': '30785', - }, - }, { - 'value': ' Patriot\'s Pouches', 'color': '8847ff', 'app_data': { - 'def_index': '30780', - }, - }, { - 'value': ' The Lurking Legionnaire', 'color': '8847ff', 'app_data': { - 'def_index': '30777', - }, - }, { - 'value': ' Gauzed Gaze', 'color': '8847ff', 'app_data': { - 'def_index': '30786', - }, - }, { - 'value': ' Herald\'s Helm', 'color': '8847ff', 'app_data': { - 'def_index': '30769', - }, - }, { - 'value': ' Scoped Spartan', 'color': '4b69ff', 'app_data': { - 'def_index': '30789', - }, - }, { - 'value': '★ The Airdog', 'color': '4b69ff', 'app_data': { - 'def_index': '30767', - }, - }, { - 'value': ' Squire\'s Sabatons', 'color': '4b69ff', 'app_data': { - 'def_index': '30771', - }, - }, { - 'value': ' The Surgical Survivalist', 'color': '4b69ff', 'app_data': { - 'def_index': '30773', - }, - }, { - 'value': ' The Demo\'s Dustcatcher', 'color': '4b69ff', 'app_data': { - 'def_index': '30788', - }, - }, { - 'value': ' Courtly Cuirass', 'color': '4b69ff', 'app_data': { - 'def_index': '30770', + const econItem = parseEconItem( + { + appid: '440', + classid: '5019702566', + instanceid: '286161456', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYggGXxTjqjx8gMnyMv6NGucF1YNk4cgHiWNqxVUpZLflNGY_dAGSA_laWqw4o1u6XnZh65Y1VYa0puhIOVK4cLUhzmI', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYggGXxTjqjx8gMnyMv6NGucF1YNk4cgHiWNqxVUpZLflNGY_dAGSA_laWqw4o1u6XnZh65Y1VYa0puhIOVK4cLUhzmI', + icon_drag_url: '', + name: 'Unusual Airdog', + market_hash_name: 'Unusual Airdog', + market_name: 'Unusual Airdog', + name_color: '8650AC', + background_color: '3C352E', + type: 'Level 7 Helmet', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Mercenary Grade Helmet', + color: '4b69ff', + }, + { + value: '★ Unusual Effect: Haunted Kraken', + color: 'ffd700', + }, + { + value: '', + }, + { + value: ' ', + }, + { + value: ' ', + }, + { + value: 'Mayflower Cosmetics Collection', + }, + { + value: ' Bedouin Bandana', + color: 'eb4b4b', + app_data: { + def_index: '30768', + }, + }, + { + value: ' The Dead Head', + color: 'eb4b4b', + app_data: { + def_index: '30775', + }, + }, + { + value: ' The Dayjogger', + color: 'd32ce6', + app_data: { + def_index: '30779', + }, + }, + { + value: ' Dad Duds', + color: 'd32ce6', + app_data: { + def_index: '30785', + }, + }, + { + value: " Patriot's Pouches", + color: '8847ff', + app_data: { + def_index: '30780', + }, + }, + { + value: ' The Lurking Legionnaire', + color: '8847ff', + app_data: { + def_index: '30777', + }, + }, + { + value: ' Gauzed Gaze', + color: '8847ff', + app_data: { + def_index: '30786', + }, + }, + { + value: " Herald's Helm", + color: '8847ff', + app_data: { + def_index: '30769', + }, + }, + { + value: ' Scoped Spartan', + color: '4b69ff', + app_data: { + def_index: '30789', + }, + }, + { + value: '★ The Airdog', + color: '4b69ff', + app_data: { + def_index: '30767', + }, + }, + { + value: " Squire's Sabatons", + color: '4b69ff', + app_data: { + def_index: '30771', + }, + }, + { + value: ' The Surgical Survivalist', + color: '4b69ff', + app_data: { + def_index: '30773', + }, + }, + { + value: " The Demo's Dustcatcher", + color: '4b69ff', + app_data: { + def_index: '30788', + }, + }, + { + value: ' Courtly Cuirass', + color: '4b69ff', + app_data: { + def_index: '30770', + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30767&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D410912148556357555', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D410912148556357555', + }, + ], + tags: [ + { + internal_name: 'rarity4', + name: 'Unusual', + category: 'Quality', + color: '8650AC', + category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Rare', + name: 'Mercenary', + category: 'Rarity', + color: '4b69ff', + category_name: 'Grade', + }, + { + internal_name: 'MayflowerCosmetics_collection', + name: 'Mayflower Cosmetics Collection', + category: 'Collection', + category_name: 'Collection', + }, + ], + app_data: { + def_index: '30767', + quality: '5', }, - }], - 'actions': [{ - 'name': 'Item Wiki Page...', - 'link': 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30767&lang=en_US', - }, { - 'name': 'Inspect in Game...', - 'link': 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D410912148556357555', - }], - 'market_actions': [{ - 'name': 'Inspect in Game...', - 'link': 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D410912148556357555', - }], - 'tags': [{ - 'internal_name': 'rarity4', - 'name': 'Unusual', - 'category': 'Quality', - 'color': '8650AC', - 'category_name': 'Quality', - }, { - 'internal_name': 'misc', 'name': 'Cosmetic', 'category': 'Type', 'category_name': 'Type', - }, { - 'internal_name': 'Scout', 'name': 'Scout', 'category': 'Class', 'category_name': 'Class', - }, { - 'internal_name': 'Rarity_Rare', - 'name': 'Mercenary', - 'category': 'Rarity', - 'color': '4b69ff', - 'category_name': 'Grade', - }, { - 'internal_name': 'MayflowerCosmetics_collection', - 'name': 'Mayflower Cosmetics Collection', - 'category': 'Collection', - 'category_name': 'Collection', - }], - 'app_data': { - 'def_index': '30767', 'quality': '5', }, - }, false, false); + false, + false + ); assert.deepEqual(econItem, { - classes: ["Scout"], + classes: ['Scout'], commodity: true, craftable: true, fullName: 'Haunted Kraken Airdog', @@ -2035,100 +3010,162 @@ describe('parseEconItem', () => { describe('Econ Item in Numbers', () => { it('Case #1', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8407830034', - classid: '3662018019', - instanceid: '11040671', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - descriptions: [{ - value: 'Mercenary Grade Flame Thrower (Minimal Wear)', color: '4b69ff', - }, { value: '★ Unusual Effect: Cool', color: 'ffd700' }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Extinguishing teammates restores 20 health', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: ' Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: '★ Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - name: 'Festivized Forest Fire Flame Thrower', - name_color: '8650AC', - type: '', - market_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_hash_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Rare', - localized_category_name: 'Grade', - localized_tag_name: 'Mercenary', - color: '4b69ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_MinimalWear', - localized_category_name: 'Exterior', - localized_tag_name: 'Minimal Wear', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8407830034', + classid: '3662018019', + instanceid: '11040671', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + descriptions: [ + { + value: 'Mercenary Grade Flame Thrower (Minimal Wear)', + color: '4b69ff', + }, + { value: '★ Unusual Effect: Cool', color: 'ffd700' }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Extinguishing teammates restores 20 health', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: ' Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: '★ Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + name: 'Festivized Forest Fire Flame Thrower', + name_color: '8650AC', + type: '', + market_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_hash_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Rare', + localized_category_name: 'Grade', + localized_tag_name: 'Mercenary', + color: '4b69ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_MinimalWear', + localized_category_name: 'Exterior', + localized_tag_name: 'Minimal Wear', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Flame Thrower', - fullName: 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + fullName: + 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', id: '8407830034', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w/', tradable: true, @@ -2153,163 +3190,247 @@ describe('Econ Item in Numbers', () => { }); it('Case #2', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8555715171', - classid: '3717643208', - instanceid: '344437314', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', - descriptions: [{ - value: '★ Unusual Effect: Nuts n\' Bolts', color: 'ffd700', - }, { value: '\'\'hmm epic\'\'' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=434&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16442165943709427870', - name: 'Inspect in Game...', - }], - name: 'Unusual Brain Bucket', - name_color: '8650AC', - type: 'Level 82 Hat', - market_name: 'Unusual Brain Bucket', - market_hash_name: 'Unusual Brain Bucket', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16442165943709427870', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8555715171', + classid: '3717643208', + instanceid: '344437314', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg', + descriptions: [ + { + value: "★ Unusual Effect: Nuts n' Bolts", + color: 'ffd700', + }, + { value: "''hmm epic''" }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=434&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16442165943709427870', + name: 'Inspect in Game...', + }, + ], + name: 'Unusual Brain Bucket', + name_color: '8650AC', + type: 'Level 82 Hat', + market_name: 'Unusual Brain Bucket', + market_hash_name: 'Unusual Brain Bucket', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16442165943709427870', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + ], + }, + true, + false + ); - assert.deepEqual(econItem, { - name: 'Brain Bucket', - fullName: 'Nuts n\' Bolts Brain Bucket', - id: '8555715171', - img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg/', - tradable: true, - craftable: true, - quality: 5, - effect: 31, - classes: ['Soldier'], - type: 'misc', - parts: [], - spells: [], - marketable: true, - commodity: false, - level: 82, - }, false, false); + assert.deepEqual( + econItem, + { + name: 'Brain Bucket', + fullName: "Nuts n' Bolts Brain Bucket", + id: '8555715171', + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEJeQQaWA_dtDlRj82oVPeJUbRTyohkssUGjDBox1IsNrKxaWc1JFWQWPYHDKFsow2_WyVlv4lzWtBtJvRLsg/', + tradable: true, + craftable: true, + quality: 5, + effect: 31, + classes: ['Soldier'], + type: 'misc', + parts: [], + spells: [], + marketable: true, + commodity: false, + level: 82, + }, + false, + false + ); }); it('Case #3', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8574678947', - classid: '3555490789', - instanceid: '856289751', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - descriptions: [{ value: 'Commando Grade Hat', color: '8847ff' }, { - value: '★ Unusual Effect: Twisted Radiance', color: 'ffd700', - }, { value: ' ' }, { value: ' ' }, { value: 'Spooky Spoils Collection' }, { - value: ' Mister Bones', color: 'eb4b4b', - }, { value: ' Pyr\'o Lantern', color: 'eb4b4b' }, { - value: ' Racc Mann', color: 'd32ce6', - }, { value: ' Head of the Dead', color: 'd32ce6' }, { - value: ' Elizabeth the Third', color: 'd32ce6', - }, { value: ' The Trick Stabber', color: 'd32ce6' }, { - value: ' El Zapateador', color: '8847ff', - }, { value: ' The Horrible Horns', color: '8847ff' }, { - value: '★ Skullbrero', color: '8847ff', - }, { value: ' Soviet Strongmann', color: '8847ff' }, { - value: ' Voodoo Vizier', color: '8847ff', - }, { value: ' Madmann\'s Muzzle', color: '8847ff' }, { - value: ' BINOCULUS!', color: '4b69ff', - }, { value: ' Derangement Garment', color: '4b69ff' }, { - value: ' Convict Cap', color: '4b69ff', - }, { value: ' El Mostacho', color: '4b69ff' }, { - value: ' Candy Cranium', color: '4b69ff', - }, { value: ' Bat Hat', color: '4b69ff' }, { - value: ' Pocket Halloween Boss', color: '4b69ff', - }, { value: ' Party Poncho', color: '4b69ff' }, { - value: ' Fuel Injector', color: '4b69ff', - }, { value: ' Bread Biter', color: '4b69ff' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - name: 'Unusual Skullbrero', - name_color: '8650AC', - type: 'Level 57 Hat', - market_name: 'Unusual Skullbrero', - market_hash_name: 'Unusual Skullbrero', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'halloween2019_collection_name', - localized_category_name: 'Collection', - localized_tag_name: 'Spooky Spoils Collection', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8574678947', + classid: '3555490789', + instanceid: '856289751', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + descriptions: [ + { value: 'Commando Grade Hat', color: '8847ff' }, + { + value: '★ Unusual Effect: Twisted Radiance', + color: 'ffd700', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Spooky Spoils Collection' }, + { + value: ' Mister Bones', + color: 'eb4b4b', + }, + { value: " Pyr'o Lantern", color: 'eb4b4b' }, + { + value: ' Racc Mann', + color: 'd32ce6', + }, + { value: ' Head of the Dead', color: 'd32ce6' }, + { + value: ' Elizabeth the Third', + color: 'd32ce6', + }, + { value: ' The Trick Stabber', color: 'd32ce6' }, + { + value: ' El Zapateador', + color: '8847ff', + }, + { value: ' The Horrible Horns', color: '8847ff' }, + { + value: '★ Skullbrero', + color: '8847ff', + }, + { value: ' Soviet Strongmann', color: '8847ff' }, + { + value: ' Voodoo Vizier', + color: '8847ff', + }, + { value: " Madmann's Muzzle", color: '8847ff' }, + { + value: ' BINOCULUS!', + color: '4b69ff', + }, + { value: ' Derangement Garment', color: '4b69ff' }, + { + value: ' Convict Cap', + color: '4b69ff', + }, + { value: ' El Mostacho', color: '4b69ff' }, + { + value: ' Candy Cranium', + color: '4b69ff', + }, + { value: ' Bat Hat', color: '4b69ff' }, + { + value: ' Pocket Halloween Boss', + color: '4b69ff', + }, + { value: ' Party Poncho', color: '4b69ff' }, + { + value: ' Fuel Injector', + color: '4b69ff', + }, + { value: ' Bread Biter', color: '4b69ff' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + name: 'Unusual Skullbrero', + name_color: '8650AC', + type: 'Level 57 Hat', + market_name: 'Unusual Skullbrero', + market_hash_name: 'Unusual Skullbrero', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'halloween2019_collection_name', + localized_category_name: 'Collection', + localized_tag_name: 'Spooky Spoils Collection', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Skullbrero', @@ -2333,58 +3454,78 @@ describe('Econ Item in Numbers', () => { }); it('Case #4', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8610658018', - classid: '171010366', - instanceid: '176498576', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - descriptions: [{ value: '★ Unusual Effect: Smoking', color: 'ffd700' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - name: 'Unusual Prancer\'s Pride', - name_color: '8650AC', - type: 'Level 88 Hat', - market_name: 'Unusual Prancer\'s Pride', - market_hash_name: 'Unusual Prancer\'s Pride', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }], - }, true, false); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8610658018', + classid: '171010366', + instanceid: '176498576', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + descriptions: [ + { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + name: "Unusual Prancer's Pride", + name_color: '8650AC', + type: 'Level 88 Hat', + market_name: "Unusual Prancer's Pride", + market_hash_name: "Unusual Prancer's Pride", + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + ], + }, + true, + false + ); assert.deepEqual(econItem, { - name: 'Prancer\'s Pride', - fullName: 'Smoking Prancer\'s Pride', + name: "Prancer's Pride", + fullName: "Smoking Prancer's Pride", id: '8610658018', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX/', tradable: true, @@ -2402,276 +3543,430 @@ describe('Econ Item in Numbers', () => { }); it('Case #5', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8656785508', - classid: '3543846179', - instanceid: '3516082756', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - descriptions: [{ - value: 'Commando Grade Rocket Launcher (Field-Tested)', color: '8847ff', - }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', color: '7ea9d1', - }, { - value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: '✔ Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: ' Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - fraudwarnings: ['This item has been renamed.\nOriginal name: "Rocket Launcher"'], - name: '\'\'post live spell rocket louncher !!!!!!!\'\'', - name_color: 'FAFAFA', - type: '', - market_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_hash_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'paintkitweapon', - localized_category_name: 'Quality', - localized_tag_name: 'Decorated Weapon', - color: 'FAFAFA', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_FieldTested', - localized_category_name: 'Exterior', - localized_tag_name: 'Field-Tested', - }], - }, true, false); - - assert.deepEqual(econItem, { - name: 'Rocket Launcher', - fullName: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - id: '8656785508', - img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA/', - tradable: true, - craftable: true, - quality: 15, - texture: 6, - wear: 3, - festivized: true, - killstreak: 2, - classes: ['Soldier'], - type: 'primary', - collection: 'Concealed Killer Collection', - grade: 'Commando', - parts: [], - spells: ['Pumpkin Bombs'], - marketable: true, - commodity: false, - sheen: 'Agonizing Emerald', - level: -1, - }); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8656785508', + classid: '3543846179', + instanceid: '3516082756', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + descriptions: [ + { + value: 'Commando Grade Rocket Launcher (Field-Tested)', + color: '8847ff', + }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', + color: '7ea9d1', + }, + { + value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: '✔ Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: ' Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "Rocket Launcher"', + ], + name: "''post live spell rocket louncher !!!!!!!''", + name_color: 'FAFAFA', + type: '', + market_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_hash_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'paintkitweapon', + localized_category_name: 'Quality', + localized_tag_name: 'Decorated Weapon', + color: 'FAFAFA', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_FieldTested', + localized_category_name: 'Exterior', + localized_tag_name: 'Field-Tested', + }, + ], + }, + true, + false + ); + + assert.deepEqual(econItem, { + name: 'Rocket Launcher', + fullName: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + id: '8656785508', + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA/', + tradable: true, + craftable: true, + quality: 15, + texture: 6, + wear: 3, + festivized: true, + killstreak: 2, + classes: ['Soldier'], + type: 'primary', + collection: 'Concealed Killer Collection', + grade: 'Commando', + parts: [], + spells: ['Pumpkin Bombs'], + marketable: true, + commodity: false, + sheen: 'Agonizing Emerald', + level: -1, + }); }); it('Case #6', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '2625497429', - instanceid: '4048537137', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_drag_url: '', - name: 'Shell Shocker Rocket Launcher', - market_hash_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - market_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - name_color: 'CF6A32', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Assassin Grade Rocket Launcher (Battle Scarred)', color: 'd32ce6', - }, { - value: 'Strange Stat Clock Attached', color: 'CF6A32', - }, { - value: ' Kills: 5121', color: '756b5e', - }, { - value: ' Pyros Killed: 712', color: '756b5e', - }, { - value: 'Team Colored Decorated Weapon', - }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { - value: 'Sheen: Mean Green', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: ' ', - }, { - value: ' ', - }, { - value: 'Powerhouse Collection', - }, { - value: ' Liquid Asset Stickybomb Launcher', color: 'eb4b4b', app_data: { - def_index: '15045', - }, - }, { - value: ' Thunderbolt Sniper Rifle', color: 'eb4b4b', app_data: { - def_index: '15059', - }, - }, { - value: ' Current Event Scattergun', color: 'd32ce6', app_data: { - def_index: '15053', - }, - }, { - value: ' Pink Elephant Stickybomb Launcher', color: 'd32ce6', app_data: { - def_index: '15048', - }, - }, { - value: '✔ Shell Shocker Rocket Launcher', color: 'd32ce6', app_data: { + const econItem = parseEconItem( + { + appid: '440', + classid: '2625497429', + instanceid: '4048537137', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_drag_url: '', + name: 'Shell Shocker Rocket Launcher', + market_hash_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + market_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + name_color: 'CF6A32', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Assassin Grade Rocket Launcher (Battle Scarred)', + color: 'd32ce6', + }, + { + value: 'Strange Stat Clock Attached', + color: 'CF6A32', + }, + { + value: ' Kills: 5121', + color: '756b5e', + }, + { + value: ' Pyros Killed: 712', + color: '756b5e', + }, + { + value: 'Team Colored Decorated Weapon', + }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Sheen: Mean Green', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: ' ', + }, + { + value: ' ', + }, + { + value: 'Powerhouse Collection', + }, + { + value: ' Liquid Asset Stickybomb Launcher', + color: 'eb4b4b', + app_data: { + def_index: '15045', + }, + }, + { + value: ' Thunderbolt Sniper Rifle', + color: 'eb4b4b', + app_data: { + def_index: '15059', + }, + }, + { + value: ' Current Event Scattergun', + color: 'd32ce6', + app_data: { + def_index: '15053', + }, + }, + { + value: ' Pink Elephant Stickybomb Launcher', + color: 'd32ce6', + app_data: { + def_index: '15048', + }, + }, + { + value: '✔ Shell Shocker Rocket Launcher', + color: 'd32ce6', + app_data: { + def_index: '15052', + }, + }, + { + value: ' Flash Fryer Flame Thrower', + color: '8847ff', + app_data: { + def_index: '15049', + }, + }, + { + value: ' Spark of Life Medi Gun', + color: '8847ff', + app_data: { + def_index: '15050', + }, + }, + { + value: ' Dead Reckoner Revolver', + color: '8847ff', + app_data: { + def_index: '15051', + }, + }, + { + value: ' Black Dahlia Pistol', + color: '8847ff', + app_data: { + def_index: '15046', + }, + }, + { + value: ' Sandstone Special Pistol', + color: '8847ff', + app_data: { + def_index: '15056', + }, + }, + { + value: ' Brick House Minigun', + color: '4b69ff', + app_data: { + def_index: '15055', + }, + }, + { + value: ' Aqua Marine Rocket Launcher', + color: '4b69ff', + app_data: { + def_index: '15057', + }, + }, + { + value: ' Low Profile SMG', + color: '4b69ff', + app_data: { + def_index: '15058', + }, + }, + { + value: ' Turbine Torcher Flame Thrower', + color: '4b69ff', + app_data: { + def_index: '15054', + }, + }, + { + value: ' Lightning Rod Shotgun', + color: '4b69ff', + app_data: { + def_index: '15047', + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Legendary', + name: 'Assassin', + category: 'Rarity', + color: 'd32ce6', + category_name: 'Grade', + }, + { + internal_name: 'Powerhouse_collection', + name: 'Powerhouse Collection', + category: 'Collection', + category_name: 'Collection', + }, + { + internal_name: 'TFUI_InvTooltip_BattleScared', + name: 'Battle Scarred', + category: 'Exterior', + category_name: 'Exterior', + }, + ], + app_data: { def_index: '15052', + quality: '11', }, - }, { - value: ' Flash Fryer Flame Thrower', color: '8847ff', app_data: { - def_index: '15049', - }, - }, { - value: ' Spark of Life Medi Gun', color: '8847ff', app_data: { - def_index: '15050', - }, - }, { - value: ' Dead Reckoner Revolver', color: '8847ff', app_data: { - def_index: '15051', - }, - }, { - value: ' Black Dahlia Pistol', color: '8847ff', app_data: { - def_index: '15046', - }, - }, { - value: ' Sandstone Special Pistol', color: '8847ff', app_data: { - def_index: '15056', - }, - }, { - value: ' Brick House Minigun', color: '4b69ff', app_data: { - def_index: '15055', - }, - }, { - value: ' Aqua Marine Rocket Launcher', color: '4b69ff', app_data: { - def_index: '15057', - }, - }, { - value: ' Low Profile SMG', color: '4b69ff', app_data: { - def_index: '15058', - }, - }, { - value: ' Turbine Torcher Flame Thrower', color: '4b69ff', app_data: { - def_index: '15054', - }, - }, { - value: ' Lightning Rod Shotgun', color: '4b69ff', app_data: { - def_index: '15047', - }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Rarity_Legendary', - name: 'Assassin', - category: 'Rarity', - color: 'd32ce6', - category_name: 'Grade', - }, { - internal_name: 'Powerhouse_collection', - name: 'Powerhouse Collection', - category: 'Collection', - category_name: 'Collection', - }, { - internal_name: 'TFUI_InvTooltip_BattleScared', - name: 'Battle Scarred', - category: 'Exterior', - category_name: 'Exterior', - }], - app_data: { - def_index: '15052', quality: '11', }, - }, true, false); + true, + false + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + fullName: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA/', tradable: true, @@ -2694,52 +3989,81 @@ describe('Econ Item in Numbers', () => { }); it('Case #7', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '1348131292', - instanceid: '93028938', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', - icon_drag_url: '', - name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_hash_name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_name: 'Strange Professional Killstreak Festive Grenade Launcher', - name_color: 'CF6A32', - background_color: '3C352E', - type: 'Limited Strange Grenade Launcher - Kills: 20', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, { - value: 'Halloween: Exorcism (spell only active during event)', color: '7ea9d1', - }, { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, { - value: 'Sheen: Manndarin', color: '7ea9d1', - }, { value: 'Killstreaks Active', color: '7ea9d1' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '1007', quality: '11' }, - }, true, false); + const econItem = parseEconItem( + { + appid: '440', + classid: '1348131292', + instanceid: '93028938', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_drag_url: '', + name: 'Strange Professional Killstreak Festive Grenade Launcher', + market_hash_name: + 'Strange Professional Killstreak Festive Grenade Launcher', + market_name: + 'Strange Professional Killstreak Festive Grenade Launcher', + name_color: 'CF6A32', + background_color: '3C352E', + type: 'Limited Strange Grenade Launcher - Kills: 20', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, + { + value: 'Halloween: Exorcism (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, + { + value: 'Sheen: Manndarin', + color: '7ea9d1', + }, + { value: 'Killstreaks Active', color: '7ea9d1' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '1007', quality: '11' }, + }, + true, + false + ); assert.deepEqual(econItem, { classes: ['Demoman'], commodity: false, craftable: true, - fullName: 'Strange Professional Killstreak Festive Grenade Launcher', + fullName: + 'Strange Professional Killstreak Festive Grenade Launcher', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY/', killstreak: 3, @@ -2757,47 +4081,76 @@ describe('Econ Item in Numbers', () => { }); it('Case #8', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '11042149', - instanceid: '19201223', - icon_url: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_url_large: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_drag_url: '', - name: 'The Essential Accessories', - market_hash_name: 'The Essential Accessories', - market_name: 'The Essential Accessories', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Limited Level 10 Apparel', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Paint Color: Operator\'s Overalls', color: '756b5e', - }, { value: '' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'misc', name: 'Cosmetic', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '347', quality: '6' }, - }, true, false); + const econItem = parseEconItem( + { + appid: '440', + classid: '11042149', + instanceid: '19201223', + icon_url: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_url_large: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_drag_url: '', + name: 'The Essential Accessories', + market_hash_name: 'The Essential Accessories', + market_name: 'The Essential Accessories', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Limited Level 10 Apparel', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "Paint Color: Operator's Overalls", + color: '756b5e', + }, + { value: '' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '347', quality: '6' }, + }, + true, + false + ); assert.deepEqual(econItem, { classes: ['Scout'], @@ -2808,7 +4161,7 @@ describe('Econ Item in Numbers', () => { img: 'https://steamcommunity-a.akamaihd.net/economy/image/IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU/', marketable: true, name: 'The Essential Accessories', - paint: 'Operator\'s Overalls', + paint: "Operator's Overalls", parts: [], quality: 6, spells: [], @@ -2828,109 +4181,199 @@ describe('Econ Item in Numbers', () => { } const format = createFormat(new MockSchema()); - const econItem = format.parseEconItem({ - appid: '440', - classid: '4472592872', - instanceid: '1365979262', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPfflDz5zdwmTVPAPD8ot8Qn-Whg07dR3XcGzuetXKlnpsYuVMbguMYpOGpXZCKTTYAv8uB89iPIIKpDcoyq72Srvaz8UG028HR0ZFYA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPfflDz5zdwmTVPAPD8ot8Qn-Whg07dR3XcGzuetXKlnpsYuVMbguMYpOGpXZCKTTYAv8uB89iPIIKpDcoyq72Srvaz8UG028HR0ZFYA', - icon_drag_url: '', - name: 'Festivized Red Rock Roscoe Pistol', - market_hash_name: 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', - market_name: 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', - name_color: 'FAFAFA', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Elite Grade Pistol (Field-Tested)', color: 'eb4b4b', - }, { - value: 'Festivized', color: 'ffd700', - }, { value: 'Team Colored Decorated Weapon' }, { - value: 'Sheen: Hot Rod', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { value: '\'\'Fuzzball\'s Pocket Pistol\'\'' }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', app_data: { def_index: '15014' }, - }, { - value: ' Red Rock Roscoe Pistol', color: 'eb4b4b', app_data: { def_index: '15013' }, - }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', app_data: { def_index: '15011' }, - }, { - value: ' Purple Range Sniper Rifle', color: 'd32ce6', app_data: { def_index: '15007' }, - }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', app_data: { def_index: '15009' }, - }, { - value: ' Night Terror Scattergun', color: '8847ff', app_data: { def_index: '15002' }, - }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', app_data: { def_index: '15012' }, - }, { - value: ' Woodland Warrior Rocket Launcher', color: '8847ff', app_data: { def_index: '15006' }, - }, { - value: ' Wrapped Reviver Medi Gun', color: '8847ff', app_data: { def_index: '15010' }, - }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', app_data: { def_index: '15000' }, - }, { - value: ' Woodsy Widowmaker SMG', color: '4b69ff', app_data: { def_index: '15001' }, - }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', app_data: { def_index: '15003' }, - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', app_data: { def_index: '15004' }, - }, { - value: ' Masked Mender Medi Gun', color: '4b69ff', app_data: { def_index: '15008' }, - }, { - value: ' Forest Fire Flame Thrower', color: '4b69ff', app_data: { def_index: '15005' }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15013&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10132525329635647851', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10132525329635647851', - }], - tags: [{ - internal_name: 'paintkitweapon', - name: 'Decorated Weapon', - category: 'Quality', - color: 'FAFAFA', - category_name: 'Quality', - }, { - internal_name: 'secondary', name: 'Secondary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Engineer', name: 'Engineer', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Rarity_Ancient', - name: 'Elite', - category: 'Rarity', - color: 'eb4b4b', - category_name: 'Grade', - }, { - internal_name: 'concealedkiller_collection', - name: 'Concealed Killer Collection', - category: 'Collection', - category_name: 'Collection', - }, { - internal_name: 'TFUI_InvTooltip_FieldTested', - name: 'Field-Tested', - category: 'Exterior', - category_name: 'Exterior', - }], - app_data: { def_index: '15013', quality: '15' }, - }, true, false); + const econItem = format.parseEconItem( + { + appid: '440', + classid: '4472592872', + instanceid: '1365979262', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPfflDz5zdwmTVPAPD8ot8Qn-Whg07dR3XcGzuetXKlnpsYuVMbguMYpOGpXZCKTTYAv8uB89iPIIKpDcoyq72Srvaz8UG028HR0ZFYA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPfflDz5zdwmTVPAPD8ot8Qn-Whg07dR3XcGzuetXKlnpsYuVMbguMYpOGpXZCKTTYAv8uB89iPIIKpDcoyq72Srvaz8UG028HR0ZFYA', + icon_drag_url: '', + name: 'Festivized Red Rock Roscoe Pistol', + market_hash_name: + 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', + market_name: + 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', + name_color: 'FAFAFA', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Elite Grade Pistol (Field-Tested)', + color: 'eb4b4b', + }, + { + value: 'Festivized', + color: 'ffd700', + }, + { value: 'Team Colored Decorated Weapon' }, + { + value: 'Sheen: Hot Rod', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { value: "''Fuzzball's Pocket Pistol''" }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + app_data: { def_index: '15014' }, + }, + { + value: ' Red Rock Roscoe Pistol', + color: 'eb4b4b', + app_data: { def_index: '15013' }, + }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + app_data: { def_index: '15011' }, + }, + { + value: ' Purple Range Sniper Rifle', + color: 'd32ce6', + app_data: { def_index: '15007' }, + }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + app_data: { def_index: '15009' }, + }, + { + value: ' Night Terror Scattergun', + color: '8847ff', + app_data: { def_index: '15002' }, + }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + app_data: { def_index: '15012' }, + }, + { + value: ' Woodland Warrior Rocket Launcher', + color: '8847ff', + app_data: { def_index: '15006' }, + }, + { + value: ' Wrapped Reviver Medi Gun', + color: '8847ff', + app_data: { def_index: '15010' }, + }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + app_data: { def_index: '15000' }, + }, + { + value: ' Woodsy Widowmaker SMG', + color: '4b69ff', + app_data: { def_index: '15001' }, + }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + app_data: { def_index: '15003' }, + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + app_data: { def_index: '15004' }, + }, + { + value: ' Masked Mender Medi Gun', + color: '4b69ff', + app_data: { def_index: '15008' }, + }, + { + value: ' Forest Fire Flame Thrower', + color: '4b69ff', + app_data: { def_index: '15005' }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15013&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10132525329635647851', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10132525329635647851', + }, + ], + tags: [ + { + internal_name: 'paintkitweapon', + name: 'Decorated Weapon', + category: 'Quality', + color: 'FAFAFA', + category_name: 'Quality', + }, + { + internal_name: 'secondary', + name: 'Secondary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Engineer', + name: 'Engineer', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Ancient', + name: 'Elite', + category: 'Rarity', + color: 'eb4b4b', + category_name: 'Grade', + }, + { + internal_name: 'concealedkiller_collection', + name: 'Concealed Killer Collection', + category: 'Collection', + category_name: 'Collection', + }, + { + internal_name: 'TFUI_InvTooltip_FieldTested', + name: 'Field-Tested', + category: 'Exterior', + category_name: 'Exterior', + }, + ], + app_data: { def_index: '15013', quality: '15' }, + }, + true, + false + ); assert.deepEqual(econItem, { name: 'Pistol', - fullName: 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', + fullName: + 'Festivized Specialized Killstreak Red Rock Roscoe Pistol (Field-Tested)', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPfflDz5zdwmTVPAPD8ot8Qn-Whg07dR3XcGzuetXKlnpsYuVMbguMYpOGpXZCKTTYAv8uB89iPIIKpDcoyq72Srvaz8UG028HR0ZFYA/', tradable: true, @@ -2956,91 +4399,151 @@ describe('Econ Item in Numbers', () => { describe('Econ item with defindexes', () => { it('Case #1', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8574678947', - classid: '3555490789', - instanceid: '856289751', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', - descriptions: [{ value: 'Commando Grade Hat', color: '8847ff' }, { - value: '★ Unusual Effect: Twisted Radiance', color: 'ffd700', - }, { value: ' ' }, { value: ' ' }, { value: 'Spooky Spoils Collection' }, { - value: ' Mister Bones', color: 'eb4b4b', - }, { value: ' Pyr\'o Lantern', color: 'eb4b4b' }, { - value: ' Racc Mann', color: 'd32ce6', - }, { value: ' Head of the Dead', color: 'd32ce6' }, { - value: ' Elizabeth the Third', color: 'd32ce6', - }, { value: ' The Trick Stabber', color: 'd32ce6' }, { - value: ' El Zapateador', color: '8847ff', - }, { value: ' The Horrible Horns', color: '8847ff' }, { - value: '★ Skullbrero', color: '8847ff', - }, { value: ' Soviet Strongmann', color: '8847ff' }, { - value: ' Voodoo Vizier', color: '8847ff', - }, { value: ' Madmann\'s Muzzle', color: '8847ff' }, { - value: ' BINOCULUS!', color: '4b69ff', - }, { value: ' Derangement Garment', color: '4b69ff' }, { - value: ' Convict Cap', color: '4b69ff', - }, { value: ' El Mostacho', color: '4b69ff' }, { - value: ' Candy Cranium', color: '4b69ff', - }, { value: ' Bat Hat', color: '4b69ff' }, { - value: ' Pocket Halloween Boss', color: '4b69ff', - }, { value: ' Party Poncho', color: '4b69ff' }, { - value: ' Fuel Injector', color: '4b69ff', - }, { value: ' Bread Biter', color: '4b69ff' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - name: 'Unusual Skullbrero', - name_color: '8650AC', - type: 'Level 57 Hat', - market_name: 'Unusual Skullbrero', - market_hash_name: 'Unusual Skullbrero', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'halloween2019_collection_name', - localized_category_name: 'Collection', - localized_tag_name: 'Spooky Spoils Collection', - }], - }, false, true); - - assert.deepEqual(econItem, { + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8574678947', + classid: '3555490789', + instanceid: '856289751', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDewlDDUq7hytIncTqD-CJGu8_l9sn4pUbi2Ftw1ApbbXtNmM_cVTEV_lbWaw7pQu0W3Rr6sVlAdPvoOhScFnt4pyGbefmPm6lTg', + descriptions: [ + { value: 'Commando Grade Hat', color: '8847ff' }, + { + value: '★ Unusual Effect: Twisted Radiance', + color: 'ffd700', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Spooky Spoils Collection' }, + { + value: ' Mister Bones', + color: 'eb4b4b', + }, + { value: " Pyr'o Lantern", color: 'eb4b4b' }, + { + value: ' Racc Mann', + color: 'd32ce6', + }, + { value: ' Head of the Dead', color: 'd32ce6' }, + { + value: ' Elizabeth the Third', + color: 'd32ce6', + }, + { value: ' The Trick Stabber', color: 'd32ce6' }, + { + value: ' El Zapateador', + color: '8847ff', + }, + { value: ' The Horrible Horns', color: '8847ff' }, + { + value: '★ Skullbrero', + color: '8847ff', + }, + { value: ' Soviet Strongmann', color: '8847ff' }, + { + value: ' Voodoo Vizier', + color: '8847ff', + }, + { value: " Madmann's Muzzle", color: '8847ff' }, + { + value: ' BINOCULUS!', + color: '4b69ff', + }, + { value: ' Derangement Garment', color: '4b69ff' }, + { + value: ' Convict Cap', + color: '4b69ff', + }, + { value: ' El Mostacho', color: '4b69ff' }, + { + value: ' Candy Cranium', + color: '4b69ff', + }, + { value: ' Bat Hat', color: '4b69ff' }, + { + value: ' Pocket Halloween Boss', + color: '4b69ff', + }, + { value: ' Party Poncho', color: '4b69ff' }, + { + value: ' Fuel Injector', + color: '4b69ff', + }, + { value: ' Bread Biter', color: '4b69ff' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=31066&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + name: 'Unusual Skullbrero', + name_color: '8650AC', + type: 'Level 57 Hat', + market_name: 'Unusual Skullbrero', + market_hash_name: 'Unusual Skullbrero', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D5006617706189886078', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'halloween2019_collection_name', + localized_category_name: 'Collection', + localized_tag_name: 'Spooky Spoils Collection', + }, + ], + }, + false, + true + ); + + assert.deepEqual(econItem, { name: 'Skullbrero', fullName: 'Twisted Radiance Skullbrero', id: '8574678947', @@ -3063,58 +4566,78 @@ describe('Econ item with defindexes', () => { }); it('Case #2', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8610658018', - classid: '171010366', - instanceid: '176498576', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', - descriptions: [{ value: '★ Unusual Effect: Smoking', color: 'ffd700' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - name: 'Unusual Prancer\'s Pride', - name_color: '8650AC', - type: 'Level 88 Hat', - market_name: 'Unusual Prancer\'s Pride', - market_hash_name: 'Unusual Prancer\'s Pride', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }], - }, false, true); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8610658018', + classid: '171010366', + instanceid: '176498576', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX', + descriptions: [ + { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=318&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + name: "Unusual Prancer's Pride", + name_color: '8650AC', + type: 'Level 88 Hat', + market_name: "Unusual Prancer's Pride", + market_hash_name: "Unusual Prancer's Pride", + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D10290164463146604828', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + ], + }, + false, + true + ); assert.deepEqual(econItem, { - name: 'Prancer\'s Pride', - fullName: 'Smoking Prancer\'s Pride', + name: "Prancer's Pride", + fullName: "Smoking Prancer's Pride", id: '8610658018', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbfgYfXh7wqwdTmsHiCM2ACfIHnpRh5MkG3G8zyVMpYebiYm8wdFGTBPILC_BvrQu9X3RqupQ6AYPhp-wHZ0yx43BgcxIX/', tradable: true, @@ -3133,106 +4656,168 @@ describe('Econ item with defindexes', () => { }); it('Case #3', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8656785508', - classid: '3543846179', - instanceid: '3516082756', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - descriptions: [{ - value: 'Commando Grade Rocket Launcher (Field-Tested)', color: '8847ff', - }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', color: '7ea9d1', - }, { - value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: '✔ Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: ' Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - fraudwarnings: ['This item has been renamed.\nOriginal name: "Rocket Launcher"'], - name: '\'\'post live spell rocket louncher !!!!!!!\'\'', - name_color: 'FAFAFA', - type: '', - market_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_hash_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'paintkitweapon', - localized_category_name: 'Quality', - localized_tag_name: 'Decorated Weapon', - color: 'FAFAFA', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_FieldTested', - localized_category_name: 'Exterior', - localized_tag_name: 'Field-Tested', - }], - }, false, true); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8656785508', + classid: '3543846179', + instanceid: '3516082756', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + descriptions: [ + { + value: 'Commando Grade Rocket Launcher (Field-Tested)', + color: '8847ff', + }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', + color: '7ea9d1', + }, + { + value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: '✔ Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: ' Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "Rocket Launcher"', + ], + name: "''post live spell rocket louncher !!!!!!!''", + name_color: 'FAFAFA', + type: '', + market_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_hash_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'paintkitweapon', + localized_category_name: 'Quality', + localized_tag_name: 'Decorated Weapon', + color: 'FAFAFA', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_FieldTested', + localized_category_name: 'Exterior', + localized_tag_name: 'Field-Tested', + }, + ], + }, + false, + true + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + fullName: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', id: '8656785508', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA/', tradable: true, @@ -3257,58 +4842,82 @@ describe('Econ item with defindexes', () => { }); it('Case #4', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8733746813', - classid: '221512872', - instanceid: '92637229', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', - descriptions: [{ - value: 'Holiday Restriction: Halloween / Full Moon', color: 'd83636', - }, { - value: 'Halloween: Spectral Spectrum (spell only active during event)', color: '7ea9d1', - }, { value: '' }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30290&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16238051287194648628', - name: 'Inspect in Game...', - }], - name: 'Haunted PY-40 Incinibot', - name_color: '38f3ab', - type: 'Level 58 Mask', - market_name: 'Haunted PY-40 Incinibot', - market_hash_name: 'Haunted PY-40 Incinibot', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16238051287194648628', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'haunted', - localized_category_name: 'Quality', - localized_tag_name: 'Haunted', - color: '38f3ab', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }], - }, false, true); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8733746813', + classid: '221512872', + instanceid: '92637229', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEDe1VBDEjdqCEX2PfnGOaDBeEUlNQK6ZFH3jMlwwB_Y7vhZ2Q0JFKQAKQJXadrpF6-UXE268I3UNHg8esHfF28tdHHO65sbo88eQy8bA', + descriptions: [ + { + value: 'Holiday Restriction: Halloween / Full Moon', + color: 'd83636', + }, + { + value: 'Halloween: Spectral Spectrum (spell only active during event)', + color: '7ea9d1', + }, + { value: '' }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=30290&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D16238051287194648628', + name: 'Inspect in Game...', + }, + ], + name: 'Haunted PY-40 Incinibot', + name_color: '38f3ab', + type: 'Level 58 Mask', + market_name: 'Haunted PY-40 Incinibot', + market_hash_name: 'Haunted PY-40 Incinibot', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D16238051287194648628', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'haunted', + localized_category_name: 'Quality', + localized_tag_name: 'Haunted', + color: '38f3ab', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + ], + }, + false, + true + ); assert.deepEqual(econItem, { name: 'PY-40 Incinibot', @@ -3330,68 +4939,90 @@ describe('Econ item with defindexes', () => { }); it('Case #5', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8434754722', - classid: '88783771', - instanceid: '92739934', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', - icon_url_large: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', - descriptions: [{ - value: 'Paint Color: Noble Hatter\'s Violet', color: '756b5e', - }, { - value: 'Halloween: Spectral Spectrum (spell only active during event)', color: '7ea9d1', - }, { - value: 'The K-9 mane is perfect for tricky social situations. People will either only want to talk about the hat, which means they\'ll be distracted from that rash making its way up your jugular,or they\'ll avoid you altogether. It\'s a win/win!', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=876&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7378163898213210976', - name: 'Inspect in Game...', - }], - name: 'Genuine K-9 Mane', - name_color: '4D7455', - type: 'Level 1 Spirit Animal', - market_name: 'Genuine K-9 Mane', - market_hash_name: 'Genuine K-9 Mane', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7378163898213210976', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity1', - localized_category_name: 'Quality', - localized_tag_name: 'Genuine', - color: '4D7455', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Demoman', - localized_category_name: 'Class', - localized_tag_name: 'Demoman', - }, { - category: 'Class', - internal_name: 'Heavy', - localized_category_name: 'Class', - localized_tag_name: 'Heavy', - }], - }, false, true); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8434754722', + classid: '88783771', + instanceid: '92739934', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', + icon_url_large: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTcePMQFc1nqWSMU5OD2NwOx3sIyShXOjLx2Sk5MbUqMcbBnQz4ruyeU2DgVzPLKCnYCGFgGOIYfAeFr3HysPORE2vPELl_RQEMdaFX9GxObM-BOEE_goVdrTXqlBwkHRNxJ5VFcVbihGQdNlNSNRp3', + descriptions: [ + { + value: "Paint Color: Noble Hatter's Violet", + color: '756b5e', + }, + { + value: 'Halloween: Spectral Spectrum (spell only active during event)', + color: '7ea9d1', + }, + { + value: "The K-9 mane is perfect for tricky social situations. People will either only want to talk about the hat, which means they'll be distracted from that rash making its way up your jugular,or they'll avoid you altogether. It's a win/win!", + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=876&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7378163898213210976', + name: 'Inspect in Game...', + }, + ], + name: 'Genuine K-9 Mane', + name_color: '4D7455', + type: 'Level 1 Spirit Animal', + market_name: 'Genuine K-9 Mane', + market_hash_name: 'Genuine K-9 Mane', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7378163898213210976', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity1', + localized_category_name: 'Quality', + localized_tag_name: 'Genuine', + color: '4D7455', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Demoman', + localized_category_name: 'Class', + localized_tag_name: 'Demoman', + }, + { + category: 'Class', + internal_name: 'Heavy', + localized_category_name: 'Class', + localized_tag_name: 'Heavy', + }, + ], + }, + false, + true + ); assert.deepEqual(econItem, { name: 'K-9 Mane', @@ -3408,70 +5039,92 @@ describe('Econ item with defindexes', () => { spells: ['Spectral Spectrum'], marketable: true, commodity: false, - paint: 'Noble Hatter\'s Violet', + paint: "Noble Hatter's Violet", paintDefindex: 5029, level: 1, }); }); it('Case #6', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8294625611', - classid: '1336074160', - instanceid: '3639098153', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', - descriptions: [{ value: 'Style: Tie', color: '756b5e' }, { - value: 'Halloween: Chromatic Corruption (spell only active during event)', color: '7ea9d1', - }, { - value: 'Halloween: Voices From Below (spell only active during event)', color: '7ea9d1', - }, { - value: 'Whether you\'re trepanning a skull to let out the sickness ghosts or attaching enough leeches to a patient that they\'ll pass out from blood loss before you cut off any suspicious-lookinglimbs, this dapper ruffed shirt and coat will assure your patients that they came to the right place for their dangerously insane 18th century medicine.', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=878&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D434113929687356346', - name: 'Inspect in Game...', - }], - name: 'Strange Genuine Foppish Physician', - name_color: '4D7455', - type: 'Strange Apparel - Points Scored: 1', - market_name: 'Strange Genuine Foppish Physician', - market_hash_name: 'Strange Genuine Foppish Physician', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D434113929687356346', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity1', - localized_category_name: 'Quality', - localized_tag_name: 'Genuine', - color: '4D7455', - }, { - category: 'Type', - internal_name: 'misc', - localized_category_name: 'Type', - localized_tag_name: 'Cosmetic', - }, { - category: 'Class', - internal_name: 'Medic', - localized_category_name: 'Class', - localized_tag_name: 'Medic', - }], - }, false, true); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8294625611', + classid: '1336074160', + instanceid: '3639098153', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEfezgSUhr2hzVGjMHlMvyJC-sUkt8K6ZFH3jMllVQrZbvkNG8ydFXAWfEICqFjp160CCNivZI3VY_j9u8DfA6-sYSUN65sbo_U7o3qKw', + descriptions: [ + { value: 'Style: Tie', color: '756b5e' }, + { + value: 'Halloween: Chromatic Corruption (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Halloween: Voices From Below (spell only active during event)', + color: '7ea9d1', + }, + { + value: "Whether you're trepanning a skull to let out the sickness ghosts or attaching enough leeches to a patient that they'll pass out from blood loss before you cut off any suspicious-lookinglimbs, this dapper ruffed shirt and coat will assure your patients that they came to the right place for their dangerously insane 18th century medicine.", + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=878&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D434113929687356346', + name: 'Inspect in Game...', + }, + ], + name: 'Strange Genuine Foppish Physician', + name_color: '4D7455', + type: 'Strange Apparel - Points Scored: 1', + market_name: 'Strange Genuine Foppish Physician', + market_hash_name: 'Strange Genuine Foppish Physician', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D434113929687356346', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity1', + localized_category_name: 'Quality', + localized_tag_name: 'Genuine', + color: '4D7455', + }, + { + category: 'Type', + internal_name: 'misc', + localized_category_name: 'Type', + localized_tag_name: 'Cosmetic', + }, + { + category: 'Class', + internal_name: 'Medic', + localized_category_name: 'Class', + localized_tag_name: 'Medic', + }, + ], + }, + false, + true + ); assert.deepEqual(econItem, { name: 'Foppish Physician', @@ -3494,63 +5147,103 @@ describe('Econ item with defindexes', () => { }); it('Case #7', () => { - const econItem = parseEconItem({ - assetid: '30125', - appid: '440', - classid: '638115890', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_drag_url: '', - name: 'Stockbroker\'s Scarf Strangifier Chemistry Set Series #2', - market_hash_name: 'Stockbroker\'s Scarf Strangifier Chemistry Set', - market_name: 'Stockbroker\'s Scarf Strangifier Chemistry Set', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 5 Recipe', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This item has a set of inputs that, once fulfilled, will\nreward you with what\'s listed in its outputs.', - }, { value: ' ' }, { - value: 'The following are the inputs that must be fulfilled.', - }, { value: 'The Vaccinator x 4', color: '8b8989' }, { - value: 'The Blutsauger x 1', color: '8b8989', - }, { value: 'The Disciplinary Action x 1', color: '8b8989' }, { - value: 'The Sandvich x 1', color: '8b8989', - }, { value: 'The Candy Cane x 1', color: '8b8989' }, { - value: 'Strange Scottish Resistance x 1', color: '8b8989', - }, { value: ' ' }, { - value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', - }, { - value: 'Stockbroker\'s Scarf Strangifier', color: '8b8989', - }, { value: ' ' }, { - value: 'This is a limited use item. Uses: 1', color: '00a000', app_data: { limited: 1 }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20005&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'TF_ItemDynamicRecipeTool', name: 'Recipe', category: 'Type', category_name: 'Type', - }], - app_data: { quantity: '1', def_index: '20005', quality: '6' }, - }, true, true); + const econItem = parseEconItem( + { + assetid: '30125', + appid: '440', + classid: '638115890', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_drag_url: '', + name: "Stockbroker's Scarf Strangifier Chemistry Set Series #2", + market_hash_name: + "Stockbroker's Scarf Strangifier Chemistry Set", + market_name: "Stockbroker's Scarf Strangifier Chemistry Set", + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 5 Recipe', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "This item has a set of inputs that, once fulfilled, will\nreward you with what's listed in its outputs.", + }, + { value: ' ' }, + { + value: 'The following are the inputs that must be fulfilled.', + }, + { value: 'The Vaccinator x 4', color: '8b8989' }, + { + value: 'The Blutsauger x 1', + color: '8b8989', + }, + { value: 'The Disciplinary Action x 1', color: '8b8989' }, + { + value: 'The Sandvich x 1', + color: '8b8989', + }, + { value: 'The Candy Cane x 1', color: '8b8989' }, + { + value: 'Strange Scottish Resistance x 1', + color: '8b8989', + }, + { value: ' ' }, + { + value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', + }, + { + value: "Stockbroker's Scarf Strangifier", + color: '8b8989', + }, + { value: ' ' }, + { + value: 'This is a limited use item. Uses: 1', + color: '00a000', + app_data: { limited: 1 }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20005&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'TF_ItemDynamicRecipeTool', + name: 'Recipe', + category: 'Type', + category_name: 'Type', + }, + ], + app_data: { quantity: '1', def_index: '20005', quality: '6' }, + }, + true, + true + ); assert.deepEqual(econItem, { name: 'Chemistry Set', - fullName: 'Stockbroker\'s Scarf Strangifier Chemistry Set #2', + fullName: "Stockbroker's Scarf Strangifier Chemistry Set #2", id: '30125', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY/', tradable: true, craftable: true, quality: 6, - target: 'Stockbroker\'s Scarf', + target: "Stockbroker's Scarf", output: 'Strangifier', outputQuality: 6, itemNumber: { type: 'series', value: 2 }, @@ -3569,155 +5262,247 @@ describe('Econ item with defindexes', () => { }); it('Case #11', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '2625497429', - instanceid: '4048537137', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_drag_url: '', - name: 'Shell Shocker Rocket Launcher', - market_hash_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - market_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - name_color: 'CF6A32', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Assassin Grade Rocket Launcher (Battle Scarred)', color: 'd32ce6', - }, { - value: 'Strange Stat Clock Attached', color: 'CF6A32', - }, { - value: ' Kills: 5121', color: '756b5e', - }, { - value: ' Pyros Killed: 712', color: '756b5e', - }, { - value: 'Team Colored Decorated Weapon', - }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { - value: 'Sheen: Mean Green', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: ' ', - }, { - value: ' ', - }, { - value: 'Powerhouse Collection', - }, { - value: ' Liquid Asset Stickybomb Launcher', color: 'eb4b4b', app_data: { - def_index: '15045', - }, - }, { - value: ' Thunderbolt Sniper Rifle', color: 'eb4b4b', app_data: { - def_index: '15059', - }, - }, { - value: ' Current Event Scattergun', color: 'd32ce6', app_data: { - def_index: '15053', - }, - }, { - value: ' Pink Elephant Stickybomb Launcher', color: 'd32ce6', app_data: { - def_index: '15048', - }, - }, { - value: '✔ Shell Shocker Rocket Launcher', color: 'd32ce6', app_data: { - def_index: '15052', - }, - }, { - value: ' Flash Fryer Flame Thrower', color: '8847ff', app_data: { - def_index: '15049', - }, - }, { - value: ' Spark of Life Medi Gun', color: '8847ff', app_data: { - def_index: '15050', - }, - }, { - value: ' Dead Reckoner Revolver', color: '8847ff', app_data: { - def_index: '15051', - }, - }, { - value: ' Black Dahlia Pistol', color: '8847ff', app_data: { - def_index: '15046', - }, - }, { - value: ' Sandstone Special Pistol', color: '8847ff', app_data: { - def_index: '15056', - }, - }, { - value: ' Brick House Minigun', color: '4b69ff', app_data: { - def_index: '15055', - }, - }, { - value: ' Aqua Marine Rocket Launcher', color: '4b69ff', app_data: { - def_index: '15057', - }, - }, { - value: ' Low Profile SMG', color: '4b69ff', app_data: { - def_index: '15058', - }, - }, { - value: ' Turbine Torcher Flame Thrower', color: '4b69ff', app_data: { - def_index: '15054', - }, - }, { - value: ' Lightning Rod Shotgun', color: '4b69ff', app_data: { - def_index: '15047', - }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Rarity_Legendary', - name: 'Assassin', - category: 'Rarity', - color: 'd32ce6', - category_name: 'Grade', - }, { - internal_name: 'Powerhouse_collection', - name: 'Powerhouse Collection', - category: 'Collection', - category_name: 'Collection', - }, { - internal_name: 'TFUI_InvTooltip_BattleScared', - name: 'Battle Scarred', - category: 'Exterior', - category_name: 'Exterior', - }], - app_data: { - def_index: '15052', quality: '11', - }, - }, false, true); - - assert.deepEqual(econItem, { - name: 'Rocket Launcher', - fullName: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - id: undefined, - img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA/', + const econItem = parseEconItem( + { + appid: '440', + classid: '2625497429', + instanceid: '4048537137', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_drag_url: '', + name: 'Shell Shocker Rocket Launcher', + market_hash_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + market_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + name_color: 'CF6A32', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Assassin Grade Rocket Launcher (Battle Scarred)', + color: 'd32ce6', + }, + { + value: 'Strange Stat Clock Attached', + color: 'CF6A32', + }, + { + value: ' Kills: 5121', + color: '756b5e', + }, + { + value: ' Pyros Killed: 712', + color: '756b5e', + }, + { + value: 'Team Colored Decorated Weapon', + }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Sheen: Mean Green', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: ' ', + }, + { + value: ' ', + }, + { + value: 'Powerhouse Collection', + }, + { + value: ' Liquid Asset Stickybomb Launcher', + color: 'eb4b4b', + app_data: { + def_index: '15045', + }, + }, + { + value: ' Thunderbolt Sniper Rifle', + color: 'eb4b4b', + app_data: { + def_index: '15059', + }, + }, + { + value: ' Current Event Scattergun', + color: 'd32ce6', + app_data: { + def_index: '15053', + }, + }, + { + value: ' Pink Elephant Stickybomb Launcher', + color: 'd32ce6', + app_data: { + def_index: '15048', + }, + }, + { + value: '✔ Shell Shocker Rocket Launcher', + color: 'd32ce6', + app_data: { + def_index: '15052', + }, + }, + { + value: ' Flash Fryer Flame Thrower', + color: '8847ff', + app_data: { + def_index: '15049', + }, + }, + { + value: ' Spark of Life Medi Gun', + color: '8847ff', + app_data: { + def_index: '15050', + }, + }, + { + value: ' Dead Reckoner Revolver', + color: '8847ff', + app_data: { + def_index: '15051', + }, + }, + { + value: ' Black Dahlia Pistol', + color: '8847ff', + app_data: { + def_index: '15046', + }, + }, + { + value: ' Sandstone Special Pistol', + color: '8847ff', + app_data: { + def_index: '15056', + }, + }, + { + value: ' Brick House Minigun', + color: '4b69ff', + app_data: { + def_index: '15055', + }, + }, + { + value: ' Aqua Marine Rocket Launcher', + color: '4b69ff', + app_data: { + def_index: '15057', + }, + }, + { + value: ' Low Profile SMG', + color: '4b69ff', + app_data: { + def_index: '15058', + }, + }, + { + value: ' Turbine Torcher Flame Thrower', + color: '4b69ff', + app_data: { + def_index: '15054', + }, + }, + { + value: ' Lightning Rod Shotgun', + color: '4b69ff', + app_data: { + def_index: '15047', + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Legendary', + name: 'Assassin', + category: 'Rarity', + color: 'd32ce6', + category_name: 'Grade', + }, + { + internal_name: 'Powerhouse_collection', + name: 'Powerhouse Collection', + category: 'Collection', + category_name: 'Collection', + }, + { + internal_name: 'TFUI_InvTooltip_BattleScared', + name: 'Battle Scarred', + category: 'Exterior', + category_name: 'Exterior', + }, + ], + app_data: { + def_index: '15052', + quality: '11', + }, + }, + false, + true + ); + + assert.deepEqual(econItem, { + name: 'Rocket Launcher', + fullName: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + id: undefined, + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA/', tradable: true, craftable: true, quality: 'Strange', @@ -3739,52 +5524,81 @@ describe('Econ item with defindexes', () => { }); it('Case #12', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '1348131292', - instanceid: '93028938', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', - icon_drag_url: '', - name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_hash_name: 'Strange Professional Killstreak Festive Grenade Launcher', - market_name: 'Strange Professional Killstreak Festive Grenade Launcher', - name_color: 'CF6A32', - background_color: '3C352E', - type: 'Limited Strange Grenade Launcher - Kills: 20', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, { - value: 'Halloween: Exorcism (spell only active during event)', color: '7ea9d1', - }, { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, { - value: 'Sheen: Manndarin', color: '7ea9d1', - }, { value: 'Killstreaks Active', color: '7ea9d1' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '1007', quality: '11' }, - }, true, true); + const econItem = parseEconItem( + { + appid: '440', + classid: '1348131292', + instanceid: '93028938', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY', + icon_drag_url: '', + name: 'Strange Professional Killstreak Festive Grenade Launcher', + market_hash_name: + 'Strange Professional Killstreak Festive Grenade Launcher', + market_name: + 'Strange Professional Killstreak Festive Grenade Launcher', + name_color: 'CF6A32', + background_color: '3C352E', + type: 'Limited Strange Grenade Launcher - Kills: 20', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { value: '(Airborne Enemy Kills: 4)', color: '756b5e' }, + { + value: 'Halloween: Exorcism (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Killstreaker: Hypno-Beam', color: '7ea9d1' }, + { + value: 'Sheen: Manndarin', + color: '7ea9d1', + }, + { value: 'Killstreaks Active', color: '7ea9d1' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=1007&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '1007', quality: '11' }, + }, + true, + true + ); assert.deepEqual(econItem, { classes: ['Demoman'], commodity: false, craftable: true, - fullName: 'Strange Professional Killstreak Festive Grenade Launcher', + fullName: + 'Strange Professional Killstreak Festive Grenade Launcher', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwADWBXjvD1Pid3oDvqJGt8Yltsm2pxUyzFu31V9NbPtYTUwdwWbBfkOXfZioFDuWSFku8JnUdLg8ulQLw29tYfCMOQycIYbhNRIXDY/', killstreak: 3, @@ -3803,47 +5617,76 @@ describe('Econ item with defindexes', () => { }); it('Case #13', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '11042149', - instanceid: '19201223', - icon_url: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_url_large: 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', - icon_drag_url: '', - name: 'The Essential Accessories', - market_hash_name: 'The Essential Accessories', - market_name: 'The Essential Accessories', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Limited Level 10 Apparel', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Paint Color: Operator\'s Overalls', color: '756b5e', - }, { value: '' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'misc', name: 'Cosmetic', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '347', quality: '6' }, - }, true, true); + const econItem = parseEconItem( + { + appid: '440', + classid: '11042149', + instanceid: '19201223', + icon_url: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_url_large: + 'IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU', + icon_drag_url: '', + name: 'The Essential Accessories', + market_hash_name: 'The Essential Accessories', + market_name: 'The Essential Accessories', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Limited Level 10 Apparel', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "Paint Color: Operator's Overalls", + color: '756b5e', + }, + { value: '' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=347&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2891326522173157497', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2891326522173157497', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'misc', + name: 'Cosmetic', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '347', quality: '6' }, + }, + true, + true + ); assert.deepEqual(econItem, { classes: ['Scout'], @@ -3854,7 +5697,7 @@ describe('Econ item with defindexes', () => { img: 'https://steamcommunity-a.akamaihd.net/economy/image/IzMF03bi9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdEH9myp0erksICfTdcfMQEpRnqWSMU5OD2NoHwHEIkChXOjLx2Sk5MbUqMcbBnQz4ruyeU3n5awjJLjLaE0pXEvYaYzGdkW_0p7rBXG6aQb0rFl9XK_QM8jdIb82PaURv3dUMrT27kxUqSU5_IZIXcl_smSJdIbMiwRlwHyU/', marketable: true, name: 'The Essential Accessories', - paint: 'Operator\'s Overalls', + paint: "Operator's Overalls", paintDefindex: 5060, parts: [], quality: 6, @@ -3878,51 +5721,89 @@ describe('Econ item with defindexes', () => { } const format = createFormat(new MockSchema()); - const econItem = format.parseEconItem({ - assetid: '30125', - appid: '440', - classid: '638115890', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_drag_url: '', - name: 'Bat Strangifier Chemistry Set Series #2', - market_hash_name: 'Bat Strangifier Chemistry Set', - market_name: 'Bat Strangifier Chemistry Set', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 5 Recipe', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This item has a set of inputs that, once fulfilled, will\nreward you with what\'s listed in its outputs.', - }, { value: ' ' }, { - value: 'The following are the inputs that must be fulfilled.', - }, { value: 'The Vaccinator x 4', color: '8b8989' }, { - value: 'The Blutsauger x 1', color: '8b8989', - }, { value: 'The Disciplinary Action x 1', color: '8b8989' }, { - value: 'The Sandvich x 1', color: '8b8989', - }, { value: 'The Candy Cane x 1', color: '8b8989' }, { - value: 'Strange Scottish Resistance x 1', color: '8b8989', - }, { value: ' ' }, { - value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', - }, { value: 'Bat Strangifier', color: '8b8989' }, { value: ' ' }, { - value: 'This is a limited use item. Uses: 1', color: '00a000', app_data: { limited: 1 }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20005&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'TF_ItemDynamicRecipeTool', name: 'Recipe', category: 'Type', category_name: 'Type', - }], - app_data: { quantity: '1', def_index: '20005', quality: '6' }, - }, false, true); + const econItem = format.parseEconItem( + { + assetid: '30125', + appid: '440', + classid: '638115890', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_drag_url: '', + name: 'Bat Strangifier Chemistry Set Series #2', + market_hash_name: 'Bat Strangifier Chemistry Set', + market_name: 'Bat Strangifier Chemistry Set', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 5 Recipe', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "This item has a set of inputs that, once fulfilled, will\nreward you with what's listed in its outputs.", + }, + { value: ' ' }, + { + value: 'The following are the inputs that must be fulfilled.', + }, + { value: 'The Vaccinator x 4', color: '8b8989' }, + { + value: 'The Blutsauger x 1', + color: '8b8989', + }, + { value: 'The Disciplinary Action x 1', color: '8b8989' }, + { + value: 'The Sandvich x 1', + color: '8b8989', + }, + { value: 'The Candy Cane x 1', color: '8b8989' }, + { + value: 'Strange Scottish Resistance x 1', + color: '8b8989', + }, + { value: ' ' }, + { + value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', + }, + { value: 'Bat Strangifier', color: '8b8989' }, + { value: ' ' }, + { + value: 'This is a limited use item. Uses: 1', + color: '00a000', + app_data: { limited: 1 }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20005&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'TF_ItemDynamicRecipeTool', + name: 'Recipe', + category: 'Type', + category_name: 'Type', + }, + ], + app_data: { quantity: '1', def_index: '20005', quality: '6' }, + }, + false, + true + ); assert.deepEqual(econItem, { name: 'Chemistry Set', @@ -3962,55 +5843,85 @@ describe('Econ item with defindexes', () => { } const format = createFormat(new MockSchema()); - const econItem = format.parseEconItem({ - appid: '440', - classid: '638769830', - instanceid: '11040671', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', - icon_drag_url: '', - name: 'Collector\'s Bat Chemistry Set', - market_hash_name: 'Collector\'s Bat Chemistry Set', - market_name: 'Collector\'s Bat Chemistry Set', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 5 Recipe', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This item has a set of inputs that, once fulfilled, will\nreward you with what\'s listed in its outputs.', - }, { value: ' ' }, { - value: 'The following are the inputs that must be fulfilled.', - }, { value: 'Festive Black Box x 198', color: '8b8989' }, { value: ' ' }, { - value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', - }, { value: 'Collector\'s Festive Black Box', color: '8b8989' }, { value: ' ' }, { - value: 'This is a limited use item. Uses: 1', color: '00a000', app_data: { limited: 1 }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20007&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'TF_ItemDynamicRecipeTool', name: 'Recipe', category: 'Type', category_name: 'Type', - }], - app_data: { quantity: '1', def_index: '20007', quality: '6' }, - }, false, true); + const econItem = format.parseEconItem( + { + appid: '440', + classid: '638769830', + instanceid: '11040671', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY', + icon_drag_url: '', + name: "Collector's Bat Chemistry Set", + market_hash_name: "Collector's Bat Chemistry Set", + market_name: "Collector's Bat Chemistry Set", + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 5 Recipe', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: "This item has a set of inputs that, once fulfilled, will\nreward you with what's listed in its outputs.", + }, + { value: ' ' }, + { + value: 'The following are the inputs that must be fulfilled.', + }, + { value: 'Festive Black Box x 198', color: '8b8989' }, + { value: ' ' }, + { + value: 'You will receive all of the following outputs once all of the inputs are fulfilled.', + }, + { value: "Collector's Festive Black Box", color: '8b8989' }, + { value: ' ' }, + { + value: 'This is a limited use item. Uses: 1', + color: '00a000', + app_data: { limited: 1 }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=20007&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'TF_ItemDynamicRecipeTool', + name: 'Recipe', + category: 'Type', + category_name: 'Type', + }, + ], + app_data: { quantity: '1', def_index: '20007', quality: '6' }, + }, + false, + true + ); assert.deepEqual(econItem, { name: 'Chemistry Set', - fullName: 'Collector\'s Bat Chemistry Set', + fullName: "Collector's Bat Chemistry Set", img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIYwkCSQn3uyxKh8bZBvuYN-wBid0wq8hXjW49lVl_NrC2ZjFjJlPHV6FcDPRj8Am1Cn5i6pE3DIfuoOxReV_x9NyRdNFoUKY/', id: undefined, tradable: true, craftable: true, quality: 'Unique', output: 'Bat', - outputQuality: 'Collector\'s', + outputQuality: "Collector's", defindex: 20005, outputDefindex: 0, classes: [], @@ -4032,38 +5943,60 @@ describe('Econ item with defindexes', () => { } const format = createFormat(new MockSchema()); - const econItem = format.parseEconItem({ - appid: '440', - classid: '171635229', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwUQSSTuuSpEjYbiXaHaCuVSyI9l4MQCjjJvk1IrYbTjMmM2cFyRAPYICqI5pFruWX8wptdtU1jiacVz', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwUQSSTuuSpEjYbiXaHaCuVSyI9l4MQCjjJvk1IrYbTjMmM2cFyRAPYICqI5pFruWX8wptdtU1jiacVz', - icon_drag_url: '', - name: 'Bat', - market_hash_name: 'Bat', - market_name: 'Bat', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 1 Bat', - tradable: 1, - marketable: 0, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ value: '\'\'lol\'\'' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=190&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'melee', name: 'Melee weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '0', quality: '6' }, - }, false, true); + const econItem = format.parseEconItem( + { + appid: '440', + classid: '171635229', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwUQSSTuuSpEjYbiXaHaCuVSyI9l4MQCjjJvk1IrYbTjMmM2cFyRAPYICqI5pFruWX8wptdtU1jiacVz', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwUQSSTuuSpEjYbiXaHaCuVSyI9l4MQCjjJvk1IrYbTjMmM2cFyRAPYICqI5pFruWX8wptdtU1jiacVz', + icon_drag_url: '', + name: 'Bat', + market_hash_name: 'Bat', + market_name: 'Bat', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 1 Bat', + tradable: 1, + marketable: 0, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [{ value: "''lol''" }], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=190&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'melee', + name: 'Melee weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '0', quality: '6' }, + }, + false, + true + ); assert.deepEqual(econItem, { name: 'Bat', @@ -4086,62 +6019,105 @@ describe('Econ item with defindexes', () => { }); it('Case #17 - Strange Normal', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '4676978267', - instanceid: '4726180620', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEcUxQFVBjpoTpMhcrZAfOZBuMInsgK6ZFH3jMlkAQvYOK0NDQyJVSRV_AOWvRo9125CyFlv5NmAoHj8bgHcQ695oLAMK5sbo8uHAbfiA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEcUxQFVBjpoTpMhcrZAfOZBuMInsgK6ZFH3jMlkAQvYOK0NDQyJVSRV_AOWvRo9125CyFlv5NmAoHj8bgHcQ695oLAMK5sbo8uHAbfiA', - icon_drag_url: '', - name: '\'\'you on BROKE status im on BREAD status\'\'', - market_hash_name: 'Strange Professional Killstreak Stickybomb Launcher', - market_name: 'Strange Professional Killstreak Stickybomb Launcher', - name_color: 'B2B2B2', - background_color: '3C352E', - type: 'Strange Stickybomb Launcher - Kills: 10527', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - fraudwarnings: ['This item has been renamed.\nOriginal name: "Stickybomb Launcher"'], - descriptions: [{ - value: '(Damage Dealt: 4195548)', color: '756b5e', - }, { - value: '(Medics Killed That Have Full ÜberCharge: 73)', color: '756b5e', - }, { - value: '(Dominations: 572)', color: '756b5e', - }, { - value: 'Killstreaker: Flames', color: '7ea9d1', - }, { - value: 'Sheen: Manndarin', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: 'Alt-Fire: Detonate all stickybombs', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=207&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D14747044437363047765', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D14747044437363047765', - }], - tags: [{ - internal_name: 'Normal', name: 'Normal', category: 'Quality', color: 'B2B2B2', category_name: 'Quality', - }, { - internal_name: 'secondary', name: 'Secondary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }], - app_data: { - def_index: '207', + const econItem = parseEconItem( + { + appid: '440', + classid: '4676978267', + instanceid: '4726180620', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEcUxQFVBjpoTpMhcrZAfOZBuMInsgK6ZFH3jMlkAQvYOK0NDQyJVSRV_AOWvRo9125CyFlv5NmAoHj8bgHcQ695oLAMK5sbo8uHAbfiA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEcUxQFVBjpoTpMhcrZAfOZBuMInsgK6ZFH3jMlkAQvYOK0NDQyJVSRV_AOWvRo9125CyFlv5NmAoHj8bgHcQ695oLAMK5sbo8uHAbfiA', + icon_drag_url: '', + name: "''you on BROKE status im on BREAD status''", + market_hash_name: + 'Strange Professional Killstreak Stickybomb Launcher', + market_name: + 'Strange Professional Killstreak Stickybomb Launcher', + name_color: 'B2B2B2', + background_color: '3C352E', + type: 'Strange Stickybomb Launcher - Kills: 10527', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "Stickybomb Launcher"', + ], + descriptions: [ + { + value: '(Damage Dealt: 4195548)', + color: '756b5e', + }, + { + value: '(Medics Killed That Have Full ÜberCharge: 73)', + color: '756b5e', + }, + { + value: '(Dominations: 572)', + color: '756b5e', + }, + { + value: 'Killstreaker: Flames', + color: '7ea9d1', + }, + { + value: 'Sheen: Manndarin', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: 'Alt-Fire: Detonate all stickybombs', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=207&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D14747044437363047765', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D14747044437363047765', + }, + ], + tags: [ + { + internal_name: 'Normal', + name: 'Normal', + category: 'Quality', + color: 'B2B2B2', + category_name: 'Quality', + }, + { + internal_name: 'secondary', + name: 'Secondary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { + def_index: '207', + }, }, - }, true, true); + true, + true + ); assert.deepEqual(econItem, { name: 'Stickybomb Launcher', @@ -4159,7 +6135,11 @@ describe('Econ item with defindexes', () => { type: 'secondary', killstreaker: 'Flames', sheen: 'Manndarin', - parts: ['Damage Dealt', 'Medics Killed That Have Full ÜberCharge', 'Dominations'], + parts: [ + 'Damage Dealt', + 'Medics Killed That Have Full ÜberCharge', + 'Dominations', + ], spells: [], marketable: true, commodity: false, @@ -4167,128 +6147,226 @@ describe('Econ item with defindexes', () => { }); it('Case #18 - Non-Craftable Sticky Jumper', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '9230923', - instanceid: '11040578', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ', - icon_drag_url: '', - name: 'The Sticky Jumper', - market_hash_name: 'The Sticky Jumper', - market_name: 'The Sticky Jumper', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 1 Stickybomb Launcher', - tradable: 1, - marketable: 0, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: '+200% max secondary ammo on wearer', color: '7ea9d1', - }, { - value: 'No self inflicted blast damage taken', color: '7ea9d1', - }, { value: '-100% damage penalty', color: 'd83636' }, { - value: 'No random critical hits', color: 'd83636', - }, { value: '-6 max pipebombs out', color: 'd83636' }, { - value: 'Wearer cannot carry the intelligence briefcase or PASS Time JACK', color: 'd83636', - }, { - value: 'A special no-damage stickybomb launcher for learning stickybomb jump tricks and patterns.', - }, { value: ' ' }, { value: '( Not Usable in Crafting )' }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=265&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'secondary', name: 'Secondary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }], - app_data: { def_index: '265', quality: '6' }, - }, true, true); - - assert.deepEqual(econItem, { - name: 'Sticky Jumper', - fullName: 'Non-Craftable Sticky Jumper', - id: undefined, - img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ/', - tradable: true, - quality: 6, - isUniqueHat: true, - defindex: 265, - level: 1, - classes: ['Demoman'], - type: 'secondary', - parts: [], - spells: [], - marketable: false, + const econItem = parseEconItem( + { + appid: '440', + classid: '9230923', + instanceid: '11040578', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ', + icon_drag_url: '', + name: 'The Sticky Jumper', + market_hash_name: 'The Sticky Jumper', + market_name: 'The Sticky Jumper', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 1 Stickybomb Launcher', + tradable: 1, + marketable: 0, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: '+200% max secondary ammo on wearer', + color: '7ea9d1', + }, + { + value: 'No self inflicted blast damage taken', + color: '7ea9d1', + }, + { value: '-100% damage penalty', color: 'd83636' }, + { + value: 'No random critical hits', + color: 'd83636', + }, + { value: '-6 max pipebombs out', color: 'd83636' }, + { + value: 'Wearer cannot carry the intelligence briefcase or PASS Time JACK', + color: 'd83636', + }, + { + value: 'A special no-damage stickybomb launcher for learning stickybomb jump tricks and patterns.', + }, + { value: ' ' }, + { value: '( Not Usable in Crafting )' }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=265&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'secondary', + name: 'Secondary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { def_index: '265', quality: '6' }, + }, + true, + true + ); + + assert.deepEqual(econItem, { + name: 'Sticky Jumper', + fullName: 'Non-Craftable Sticky Jumper', + id: undefined, + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUxQFVBjpoQdJncX2COCzBOESnN97tJFQ3GIyk1V5MbvmZDE-dgGaUaRcCKw-9gu7XXRgsMI7ANHk8usDLBKv6tUEIS3TYQ/', + tradable: true, + quality: 6, + isUniqueHat: true, + defindex: 265, + level: 1, + classes: ['Demoman'], + type: 'secondary', + parts: [], + spells: [], + marketable: false, commodity: false, craftable: false, }); }); it('Gets uses from Dueling Mini-Game', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '134', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOmtkzvZRU2GY4wFN_NrHsZWZlJlTGUKILCPc_rFjvXXVg6sI2DYDi9PUWJ1s1TbibCw', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOmtkzvZRU2GY4wFN_NrHsZWZlJlTGUKILCPc_rFjvXXVg6sI2DYDi9PUWJ1s1TbibCw', - icon_drag_url: '', - name: 'Dueling Mini-Game', - market_hash_name: 'Dueling Mini-Game', - market_name: 'Dueling Mini-Game', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 5 Usable Item', - tradable: 1, - marketable: 0, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Is an enemy player questioning your skills, personal hygiene, and/or ancestry?\nUse these stylish firearms to challenge them to a duel!\nSee the Mann Co. Catalog for full details.', - }, { - value: ' ', - }, { - value: 'This is a limited use item. Uses: 5', color: '00a000', app_data: { - limited: 1, + const econItem = parseEconItem( + { + appid: '440', + classid: '134', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOmtkzvZRU2GY4wFN_NrHsZWZlJlTGUKILCPc_rFjvXXVg6sI2DYDi9PUWJ1s1TbibCw', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOmtkzvZRU2GY4wFN_NrHsZWZlJlTGUKILCPc_rFjvXXVg6sI2DYDi9PUWJ1s1TbibCw', + icon_drag_url: '', + name: 'Dueling Mini-Game', + market_hash_name: 'Dueling Mini-Game', + market_name: 'Dueling Mini-Game', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 5 Usable Item', + tradable: 1, + marketable: 0, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Is an enemy player questioning your skills, personal hygiene, and/or ancestry?\nUse these stylish firearms to challenge them to a duel!\nSee the Mann Co. Catalog for full details.', + }, + { + value: ' ', + }, + { + value: 'This is a limited use item. Uses: 5', + color: '00a000', + app_data: { + limited: 1, + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=241&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'TF_UsableItem', + name: 'Usable Item', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Scout', + name: 'Scout', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Sniper', + name: 'Sniper', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Demoman', + name: 'Demoman', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Medic', + name: 'Medic', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Heavy', + name: 'Heavy', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Pyro', + name: 'Pyro', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Spy', + name: 'Spy', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Engineer', + name: 'Engineer', + category: 'Class', + category_name: 'Class', + }, + ], + app_data: { + quantity: '5', + def_index: '241', + quality: '6', }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=241&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', name: 'Unique', category: 'Quality', color: '7D6D00', category_name: 'Quality', - }, { - internal_name: 'TF_UsableItem', name: 'Usable Item', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Scout', name: 'Scout', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Sniper', name: 'Sniper', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Demoman', name: 'Demoman', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Medic', name: 'Medic', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Heavy', name: 'Heavy', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Pyro', name: 'Pyro', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Spy', name: 'Spy', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Engineer', name: 'Engineer', category: 'Class', category_name: 'Class', - }], - app_data: { - quantity: '5', def_index: '241', quality: '6', }, - }, true, true); + true, + true + ); assert.deepEqual(econItem, { defindex: 241, @@ -4296,7 +6374,17 @@ describe('Econ item with defindexes', () => { craftable: true, commodity: false, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOmtkzvZRU2GY4wFN_NrHsZWZlJlTGUKILCPc_rFjvXXVg6sI2DYDi9PUWJ1s1TbibCw/', - classes: ['Scout', 'Sniper', 'Soldier', 'Demoman', 'Medic', 'Heavy', 'Pyro', 'Spy', 'Engineer'], + classes: [ + 'Scout', + 'Sniper', + 'Soldier', + 'Demoman', + 'Medic', + 'Heavy', + 'Pyro', + 'Spy', + 'Engineer', + ], name: 'Dueling Mini-Game', quality: 6, parts: [], @@ -4313,106 +6401,169 @@ describe('Econ item with defindexes', () => { describe('Econ item with true defindex', () => { it('Case #1 - skin', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8656785508', - classid: '3543846179', - instanceid: '3516082756', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', - descriptions: [{ - value: 'Commando Grade Rocket Launcher (Field-Tested)', color: '8847ff', - }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', color: '7ea9d1', - }, { - value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: '✔ Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: ' Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - fraudwarnings: ['This item has been renamed.\nOriginal name: "Rocket Launcher"'], - name: '\'\'post live spell rocket louncher !!!!!!!\'\'', - name_color: 'FAFAFA', - type: '', - market_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_hash_name: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'paintkitweapon', - localized_category_name: 'Quality', - localized_tag_name: 'Decorated Weapon', - color: 'FAFAFA', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', - internal_name: 'Soldier', - localized_category_name: 'Class', - localized_tag_name: 'Soldier', - }, { - category: 'Rarity', - internal_name: 'Rarity_Mythical', - localized_category_name: 'Grade', - localized_tag_name: 'Commando', - color: '8847ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_FieldTested', - localized_category_name: 'Exterior', - localized_tag_name: 'Field-Tested', - }], - }, false, true, { useTrueDefindex: true }); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8656785508', + classid: '3543846179', + instanceid: '3516082756', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA', + descriptions: [ + { + value: 'Commando Grade Rocket Launcher (Field-Tested)', + color: '8847ff', + }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: '\nGift from: VLaDOS | S>C.MOON YELLOW BELT', + color: '7ea9d1', + }, + { + value: 'Date Received: Tuesday, September 10, 2019 (9:36:39) GMT', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: '✔ Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: ' Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15006&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + fraudwarnings: [ + 'This item has been renamed.\nOriginal name: "Rocket Launcher"', + ], + name: "''post live spell rocket louncher !!!!!!!''", + name_color: 'FAFAFA', + type: '', + market_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_hash_name: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D11534198800805877074', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'paintkitweapon', + localized_category_name: 'Quality', + localized_tag_name: 'Decorated Weapon', + color: 'FAFAFA', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Soldier', + localized_category_name: 'Class', + localized_tag_name: 'Soldier', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Mythical', + localized_category_name: 'Grade', + localized_tag_name: 'Commando', + color: '8847ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_FieldTested', + localized_category_name: 'Exterior', + localized_tag_name: 'Field-Tested', + }, + ], + }, + false, + true, + { useTrueDefindex: true } + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', + fullName: + 'Festivized Specialized Killstreak Woodland Warrior Rocket Launcher (Field-Tested)', id: '8656785508', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffjDz5zdwmTVPAOCsot8Qn-Whg07dR3XcGzuehWe1q65oHFOuQpN4kZGpOECffQZl39vho_1KdefJbbonvq3SvubmwUG028UzYUYzA/', tradable: true, @@ -4437,153 +6588,246 @@ describe('Econ item with true defindex', () => { }); it('Case #2 - skin', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '2625497429', - instanceid: '4048537137', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', - icon_drag_url: '', - name: 'Shell Shocker Rocket Launcher', - market_hash_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - market_name: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', - name_color: 'CF6A32', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 0, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'Assassin Grade Rocket Launcher (Battle Scarred)', color: 'd32ce6', - }, { - value: 'Strange Stat Clock Attached', color: 'CF6A32', - }, { - value: ' Kills: 5121', color: '756b5e', - }, { - value: ' Pyros Killed: 712', color: '756b5e', - }, { - value: 'Team Colored Decorated Weapon', - }, { - value: 'Halloween: Pumpkin Bombs (spell only active during event)', color: '7ea9d1', - }, { - value: 'Sheen: Mean Green', color: '7ea9d1', - }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: ' ', - }, { - value: ' ', - }, { - value: 'Powerhouse Collection', - }, { - value: ' Liquid Asset Stickybomb Launcher', color: 'eb4b4b', app_data: { - def_index: '15045', - }, - }, { - value: ' Thunderbolt Sniper Rifle', color: 'eb4b4b', app_data: { - def_index: '15059', - }, - }, { - value: ' Current Event Scattergun', color: 'd32ce6', app_data: { - def_index: '15053', - }, - }, { - value: ' Pink Elephant Stickybomb Launcher', color: 'd32ce6', app_data: { - def_index: '15048', - }, - }, { - value: '✔ Shell Shocker Rocket Launcher', color: 'd32ce6', app_data: { + const econItem = parseEconItem( + { + appid: '440', + classid: '2625497429', + instanceid: '4048537137', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA', + icon_drag_url: '', + name: 'Shell Shocker Rocket Launcher', + market_hash_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + market_name: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + name_color: 'CF6A32', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 0, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'Assassin Grade Rocket Launcher (Battle Scarred)', + color: 'd32ce6', + }, + { + value: 'Strange Stat Clock Attached', + color: 'CF6A32', + }, + { + value: ' Kills: 5121', + color: '756b5e', + }, + { + value: ' Pyros Killed: 712', + color: '756b5e', + }, + { + value: 'Team Colored Decorated Weapon', + }, + { + value: 'Halloween: Pumpkin Bombs (spell only active during event)', + color: '7ea9d1', + }, + { + value: 'Sheen: Mean Green', + color: '7ea9d1', + }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: ' ', + }, + { + value: ' ', + }, + { + value: 'Powerhouse Collection', + }, + { + value: ' Liquid Asset Stickybomb Launcher', + color: 'eb4b4b', + app_data: { + def_index: '15045', + }, + }, + { + value: ' Thunderbolt Sniper Rifle', + color: 'eb4b4b', + app_data: { + def_index: '15059', + }, + }, + { + value: ' Current Event Scattergun', + color: 'd32ce6', + app_data: { + def_index: '15053', + }, + }, + { + value: ' Pink Elephant Stickybomb Launcher', + color: 'd32ce6', + app_data: { + def_index: '15048', + }, + }, + { + value: '✔ Shell Shocker Rocket Launcher', + color: 'd32ce6', + app_data: { + def_index: '15052', + }, + }, + { + value: ' Flash Fryer Flame Thrower', + color: '8847ff', + app_data: { + def_index: '15049', + }, + }, + { + value: ' Spark of Life Medi Gun', + color: '8847ff', + app_data: { + def_index: '15050', + }, + }, + { + value: ' Dead Reckoner Revolver', + color: '8847ff', + app_data: { + def_index: '15051', + }, + }, + { + value: ' Black Dahlia Pistol', + color: '8847ff', + app_data: { + def_index: '15046', + }, + }, + { + value: ' Sandstone Special Pistol', + color: '8847ff', + app_data: { + def_index: '15056', + }, + }, + { + value: ' Brick House Minigun', + color: '4b69ff', + app_data: { + def_index: '15055', + }, + }, + { + value: ' Aqua Marine Rocket Launcher', + color: '4b69ff', + app_data: { + def_index: '15057', + }, + }, + { + value: ' Low Profile SMG', + color: '4b69ff', + app_data: { + def_index: '15058', + }, + }, + { + value: ' Turbine Torcher Flame Thrower', + color: '4b69ff', + app_data: { + def_index: '15054', + }, + }, + { + value: ' Lightning Rod Shotgun', + color: '4b69ff', + app_data: { + def_index: '15047', + }, + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', + }, + ], + tags: [ + { + internal_name: 'strange', + name: 'Strange', + category: 'Quality', + color: 'CF6A32', + category_name: 'Quality', + }, + { + internal_name: 'primary', + name: 'Primary weapon', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Soldier', + name: 'Soldier', + category: 'Class', + category_name: 'Class', + }, + { + internal_name: 'Rarity_Legendary', + name: 'Assassin', + category: 'Rarity', + color: 'd32ce6', + category_name: 'Grade', + }, + { + internal_name: 'Powerhouse_collection', + name: 'Powerhouse Collection', + category: 'Collection', + category_name: 'Collection', + }, + { + internal_name: 'TFUI_InvTooltip_BattleScared', + name: 'Battle Scarred', + category: 'Exterior', + category_name: 'Exterior', + }, + ], + app_data: { def_index: '15052', + quality: '11', }, - }, { - value: ' Flash Fryer Flame Thrower', color: '8847ff', app_data: { - def_index: '15049', - }, - }, { - value: ' Spark of Life Medi Gun', color: '8847ff', app_data: { - def_index: '15050', - }, - }, { - value: ' Dead Reckoner Revolver', color: '8847ff', app_data: { - def_index: '15051', - }, - }, { - value: ' Black Dahlia Pistol', color: '8847ff', app_data: { - def_index: '15046', - }, - }, { - value: ' Sandstone Special Pistol', color: '8847ff', app_data: { - def_index: '15056', - }, - }, { - value: ' Brick House Minigun', color: '4b69ff', app_data: { - def_index: '15055', - }, - }, { - value: ' Aqua Marine Rocket Launcher', color: '4b69ff', app_data: { - def_index: '15057', - }, - }, { - value: ' Low Profile SMG', color: '4b69ff', app_data: { - def_index: '15058', - }, - }, { - value: ' Turbine Torcher Flame Thrower', color: '4b69ff', app_data: { - def_index: '15054', - }, - }, { - value: ' Lightning Rod Shotgun', color: '4b69ff', app_data: { - def_index: '15047', - }, - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15052&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D7998211058114246468', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D7998211058114246468', - }], - tags: [{ - internal_name: 'strange', - name: 'Strange', - category: 'Quality', - color: 'CF6A32', - category_name: 'Quality', - }, { - internal_name: 'primary', name: 'Primary weapon', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Soldier', name: 'Soldier', category: 'Class', category_name: 'Class', - }, { - internal_name: 'Rarity_Legendary', - name: 'Assassin', - category: 'Rarity', - color: 'd32ce6', - category_name: 'Grade', - }, { - internal_name: 'Powerhouse_collection', - name: 'Powerhouse Collection', - category: 'Collection', - category_name: 'Collection', - }, { - internal_name: 'TFUI_InvTooltip_BattleScared', - name: 'Battle Scarred', - category: 'Exterior', - category_name: 'Exterior', - }], - app_data: { - def_index: '15052', quality: '11', }, - }, false, true, { useTrueDefindex: true }); + false, + true, + { useTrueDefindex: true } + ); assert.deepEqual(econItem, { name: 'Rocket Launcher', - fullName: 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', + fullName: + 'Strange Specialized Killstreak Shell Shocker Rocket Launcher (Battle Scarred)', id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffgYghuZgHPUPUOCacF4w3tG3J86sI7V47mp-JTLQu-vNTGYbh_MNgYHMeFXPHVY139uEk9g_VbK52LqTSvg3pcnpTOhA/', tradable: true, @@ -4607,100 +6851,163 @@ describe('Econ item with true defindex', () => { }); it('Case #3 - bad wiki link', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8407830034', - classid: '3662018019', - instanceid: '11040671', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - descriptions: [{ - value: 'Mercenary Grade Flame Thrower (Minimal Wear)', color: '4b69ff', - }, { value: '★ Unusual Effect: Cool', color: 'ffd700' }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Extinguishing teammates restores 20 health', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { value: ' Night Terror Scattergun', color: '8847ff' }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: ' Woodland Warrior Rocket Launcher', color: '8847ff', - }, { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { value: ' Masked Mender Medi Gun', color: '4b69ff' }, { - value: '★ Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - name: 'Festivized Forest Fire Flame Thrower', - name_color: '8650AC', - type: '', - market_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_hash_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', internal_name: 'Pyro', localized_category_name: 'Class', localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Rare', - localized_category_name: 'Grade', - localized_tag_name: 'Mercenary', - color: '4b69ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_MinimalWear', - localized_category_name: 'Exterior', - localized_tag_name: 'Minimal Wear', - }], - }, true, true, { useTrueDefindex: true }); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8407830034', + classid: '3662018019', + instanceid: '11040671', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + descriptions: [ + { + value: 'Mercenary Grade Flame Thrower (Minimal Wear)', + color: '4b69ff', + }, + { value: '★ Unusual Effect: Cool', color: 'ffd700' }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Extinguishing teammates restores 20 health', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { value: ' Red Rock Roscoe Pistol', color: 'eb4b4b' }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { value: ' Purple Range Sniper Rifle', color: 'd32ce6' }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { value: ' Night Terror Scattergun', color: '8847ff' }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: ' Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { value: ' Wrapped Reviver Medi Gun', color: '8847ff' }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { value: ' Masked Mender Medi Gun', color: '4b69ff' }, + { + value: '★ Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + name: 'Festivized Forest Fire Flame Thrower', + name_color: '8650AC', + type: '', + market_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_hash_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Rare', + localized_category_name: 'Grade', + localized_tag_name: 'Mercenary', + color: '4b69ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_MinimalWear', + localized_category_name: 'Exterior', + localized_tag_name: 'Minimal Wear', + }, + ], + }, + true, + true, + { useTrueDefindex: true } + ); assert.deepEqual(econItem, { name: 'Flame Thrower', - fullName: 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + fullName: + 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', id: '8407830034', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w/', tradable: true, @@ -4727,203 +7034,405 @@ describe('Econ item with true defindex', () => { describe('Retrieves crate number', () => { it('Retrieves crate number correctly for crate', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '4657007866', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_drag_url: '', - name: 'Winter 2021 Cosmetic Case', - market_hash_name: 'Winter 2021 Cosmetic Case', - market_name: 'Winter 2021 Cosmetic Case', - name_color: '7D6D00', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 1, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', - }, { value: ' ' }, { - value: 'Contents may be Strange or an Unusual Winter 2021 Hat', color: '7ea9d1', - }, { value: ' ' }, { value: ' ' }, { value: 'Winter 2021 Cosmetics Collection' }, { - value: ' Oh Deer!', color: 'eb4b4b', app_data: { def_index: '31245' }, - }, { - value: ' Jolly Jester', color: 'd32ce6', app_data: { def_index: '31243' }, - }, { - value: ' Merry Cone', color: 'd32ce6', app_data: { def_index: '31247' }, - }, { - value: ' Hat Chocolate', color: 'd32ce6', app_data: { def_index: '31259' }, - }, { - value: ' Elf-Made Bandanna', color: '8847ff', app_data: { def_index: '31260' }, - }, { - value: ' Seasonal Spring', color: '8847ff', app_data: { def_index: '31244' }, - }, { - value: ' Elf Ignition', color: '8847ff', app_data: { def_index: '31253' }, - }, { - value: ' Train Of Thought', color: '8847ff', app_data: { def_index: '31254' }, - }, { - value: ' Seasonal Employee', color: '8847ff', app_data: { def_index: '31258' }, - }, { - value: ' Reindoonihorns', color: '8847ff', app_data: { def_index: '31249' }, - }, { - value: ' Festive Cover-Up', color: '4b69ff', app_data: { def_index: '31257' }, - }, { - value: ' El Fiestibrero', color: '4b69ff', app_data: { def_index: '31241' }, - }, { - value: ' Ominous Offering', color: '4b69ff', app_data: { def_index: '31251' }, - }, { - value: ' Brain Cane', color: '4b69ff', app_data: { def_index: '31248' }, - }, { - value: ' Cozy Catchers', color: '4b69ff', app_data: { def_index: '31250' }, - }, { - value: ' The Giftcrafter', color: '4b69ff', app_data: { def_index: '31246' }, - }, { - value: ' Festive Frames', color: '4b69ff', app_data: { def_index: '31252' }, - }, { - value: ' Mooshanka', color: '4b69ff', app_data: { def_index: '31255' }, - }, { - value: ' Elf Defense', color: '4b69ff', app_data: { def_index: '31256' }, - }, { - value: ' Gnome Dome', color: '4b69ff', app_data: { def_index: '31242' }, - }, { value: ' ' }, { value: 'Case Exclusive Bonus Item(s):' }, { - value: 'Festivizer', color: '6F6A63', app_data: { def_index: '5839' }, - }, { value: ' ' }, { value: 'Case Global Unusual Effect(s)' }, { - value: '★ Unusual Effect: Green Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Haunted Ghosts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Green Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling TF Logo', color: 'ffd700', - }, { - value: '★ Unusual Effect: Massed Flies', color: 'ffd700', - }, { - value: '★ Unusual Effect: Burning Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Scorching Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Searing Plasma', color: 'ffd700', - }, { - value: '★ Unusual Effect: Vivid Plasma', color: 'ffd700', - }, { - value: '★ Unusual Effect: Sunbeams', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling Peace Sign', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling Heart', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stormy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Blizzardy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Nuts n\' Bolts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Planets', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Fire', color: 'ffd700', - }, { - value: '★ Unusual Effect: Bubbling', color: 'ffd700', - }, { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, { - value: '★ Unusual Effect: Steaming', color: 'ffd700', - }, { - value: '★ Unusual Effect: Kill-a-Watt', color: 'ffd700', - }, { - value: '★ Unusual Effect: Terror-Watt', color: 'ffd700', - }, { value: '★ Unusual Effect: Cloud 9', color: 'ffd700' }, { - value: '★ Unusual Effect: Aces High', color: 'ffd700', - }, { - value: '★ Unusual Effect: Dead Presidents', color: 'ffd700', - }, { - value: '★ Unusual Effect: Miami Nights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Disco Beat Down', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Hospitable Festivity', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Sparkling Spruce', color: 'ffd700', - }, { - value: '★ Unusual Effect: Glittering Juniper', color: 'ffd700', - }, { - value: '★ Unusual Effect: Prismatic Pine', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Twisting Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stardust Pathway', color: 'ffd700', - }, { - value: '★ Unusual Effect: Flurry Rush', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spark of Smissmas', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Shining Stag', color: 'ffd700', - }, { - value: '★ Unusual Effect: Holiday Horns', color: 'ffd700', - }, { - value: '★ Unusual Effect: Ardent Antlers', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { value: ' ' }, { value: 'Case Global Bonus Item(s)' }, { - value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', - }, { - value: 'Inspect for full list of unusual effects and more details', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', - }], - tags: [{ - internal_name: 'Unique', - name: 'Unique', - category: 'Quality', - color: '7D6D00', - category_name: 'Quality', - }, { - internal_name: 'Supply Crate', name: 'Crate', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Winter2021Cosmetics_collection', - name: 'Winter 2021 Cosmetics Collection', - category: 'Collection', - category_name: 'Collection', - }], - }, false, false, { retrieveCrateNumber: true }); + const econItem = parseEconItem( + { + appid: '440', + classid: '4657007866', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_drag_url: '', + name: 'Winter 2021 Cosmetic Case', + market_hash_name: 'Winter 2021 Cosmetic Case', + market_name: 'Winter 2021 Cosmetic Case', + name_color: '7D6D00', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 1, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', + }, + { value: ' ' }, + { + value: 'Contents may be Strange or an Unusual Winter 2021 Hat', + color: '7ea9d1', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Winter 2021 Cosmetics Collection' }, + { + value: ' Oh Deer!', + color: 'eb4b4b', + app_data: { def_index: '31245' }, + }, + { + value: ' Jolly Jester', + color: 'd32ce6', + app_data: { def_index: '31243' }, + }, + { + value: ' Merry Cone', + color: 'd32ce6', + app_data: { def_index: '31247' }, + }, + { + value: ' Hat Chocolate', + color: 'd32ce6', + app_data: { def_index: '31259' }, + }, + { + value: ' Elf-Made Bandanna', + color: '8847ff', + app_data: { def_index: '31260' }, + }, + { + value: ' Seasonal Spring', + color: '8847ff', + app_data: { def_index: '31244' }, + }, + { + value: ' Elf Ignition', + color: '8847ff', + app_data: { def_index: '31253' }, + }, + { + value: ' Train Of Thought', + color: '8847ff', + app_data: { def_index: '31254' }, + }, + { + value: ' Seasonal Employee', + color: '8847ff', + app_data: { def_index: '31258' }, + }, + { + value: ' Reindoonihorns', + color: '8847ff', + app_data: { def_index: '31249' }, + }, + { + value: ' Festive Cover-Up', + color: '4b69ff', + app_data: { def_index: '31257' }, + }, + { + value: ' El Fiestibrero', + color: '4b69ff', + app_data: { def_index: '31241' }, + }, + { + value: ' Ominous Offering', + color: '4b69ff', + app_data: { def_index: '31251' }, + }, + { + value: ' Brain Cane', + color: '4b69ff', + app_data: { def_index: '31248' }, + }, + { + value: ' Cozy Catchers', + color: '4b69ff', + app_data: { def_index: '31250' }, + }, + { + value: ' The Giftcrafter', + color: '4b69ff', + app_data: { def_index: '31246' }, + }, + { + value: ' Festive Frames', + color: '4b69ff', + app_data: { def_index: '31252' }, + }, + { + value: ' Mooshanka', + color: '4b69ff', + app_data: { def_index: '31255' }, + }, + { + value: ' Elf Defense', + color: '4b69ff', + app_data: { def_index: '31256' }, + }, + { + value: ' Gnome Dome', + color: '4b69ff', + app_data: { def_index: '31242' }, + }, + { value: ' ' }, + { value: 'Case Exclusive Bonus Item(s):' }, + { + value: 'Festivizer', + color: '6F6A63', + app_data: { def_index: '5839' }, + }, + { value: ' ' }, + { value: 'Case Global Unusual Effect(s)' }, + { + value: '★ Unusual Effect: Green Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Haunted Ghosts', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Green Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling TF Logo', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Massed Flies', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Burning Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Scorching Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Searing Plasma', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Vivid Plasma', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Sunbeams', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling Peace Sign', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling Heart', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stormy Storm', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Blizzardy Storm', + color: 'ffd700', + }, + { + value: "★ Unusual Effect: Nuts n' Bolts", + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Planets', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Fire', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Bubbling', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, + { + value: '★ Unusual Effect: Steaming', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Kill-a-Watt', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Terror-Watt', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Cloud 9', color: 'ffd700' }, + { + value: '★ Unusual Effect: Aces High', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Dead Presidents', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Miami Nights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Disco Beat Down', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Hospitable Festivity', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Sparkling Spruce', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Glittering Juniper', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Prismatic Pine', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Twisting Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stardust Pathway', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Flurry Rush', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spark of Smissmas', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Shining Stag', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Holiday Horns', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Ardent Antlers', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { value: ' ' }, + { value: 'Case Global Bonus Item(s)' }, + { + value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', + }, + { + value: 'Inspect for full list of unusual effects and more details', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'Supply Crate', + name: 'Crate', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Winter2021Cosmetics_collection', + name: 'Winter 2021 Cosmetics Collection', + category: 'Collection', + category_name: 'Collection', + }, + ], + }, + false, + false, + { retrieveCrateNumber: true } + ); assert.deepEqual(econItem, { classes: [], @@ -4942,119 +7451,185 @@ describe('Econ item with true defindex', () => { marketable: true, collection: 'Winter 2021 Cosmetics Collection', itemNumber: { - type: 'crate', value: 135, + type: 'crate', + value: 135, }, }); }); it('Retrieves crate number for non-crate item', () => { - const econItem = parseEconItem({ - appid: 440, - contextid: '2', - assetid: '8407830034', - classid: '3662018019', - instanceid: '11040671', - amount: '1', - currency: 0, - background_color: '3C352E', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', - descriptions: [{ - value: 'Mercenary Grade Flame Thrower (Minimal Wear)', color: '4b69ff', - }, { value: '★ Unusual Effect: Cool', color: 'ffd700' }, { value: 'Festivized', color: 'ffd700' }, { - value: 'Extinguishing teammates restores 20 health', color: '7ea9d1', - }, { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, { - value: 'Killstreaks Active', color: '7ea9d1', - }, { - value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', - }, { value: ' ' }, { value: ' ' }, { value: 'Concealed Killer Collection' }, { - value: ' Sand Cannon Rocket Launcher', color: 'eb4b4b', - }, { - value: ' Red Rock Roscoe Pistol', color: 'eb4b4b', - }, { - value: ' Psychedelic Slugger Revolver', color: 'd32ce6', - }, { - value: ' Purple Range Sniper Rifle', color: 'd32ce6', - }, { - value: ' Sudden Flurry Stickybomb Launcher', color: 'd32ce6', - }, { - value: ' Night Terror Scattergun', color: '8847ff', - }, { - value: ' Carpet Bomber Stickybomb Launcher', color: '8847ff', - }, { - value: ' Woodland Warrior Rocket Launcher', color: '8847ff', - }, { - value: ' Wrapped Reviver Medi Gun', color: '8847ff', - }, { - value: ' Night Owl Sniper Rifle', color: '4b69ff', - }, { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, { - value: ' Backwoods Boomstick Shotgun', color: '4b69ff', - }, { - value: ' King of the Jungle Minigun', color: '4b69ff', - }, { - value: ' Masked Mender Medi Gun', color: '4b69ff', - }, { - value: '★ Forest Fire Flame Thrower', color: '4b69ff', - }], - tradable: 1, - actions: [{ - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', - name: 'Item Wiki Page...', - }, { - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - name: 'Festivized Forest Fire Flame Thrower', - name_color: '8650AC', - type: '', - market_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_hash_name: 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', - market_actions: [{ - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', - name: 'Inspect in Game...', - }], - commodity: 0, - market_tradable_restriction: 7, - market_marketable_restriction: 0, - marketable: 1, - tags: [{ - category: 'Quality', - internal_name: 'rarity4', - localized_category_name: 'Quality', - localized_tag_name: 'Unusual', - color: '8650AC', - }, { - category: 'Type', - internal_name: 'primary', - localized_category_name: 'Type', - localized_tag_name: 'Primary weapon', - }, { - category: 'Class', - internal_name: 'Pyro', - localized_category_name: 'Class', - localized_tag_name: 'Pyro', - }, { - category: 'Rarity', - internal_name: 'Rarity_Rare', - localized_category_name: 'Grade', - localized_tag_name: 'Mercenary', - color: '4b69ff', - }, { - category: 'Collection', - internal_name: 'concealedkiller_collection', - localized_category_name: 'Collection', - localized_tag_name: 'Concealed Killer Collection', - }, { - category: 'Exterior', - internal_name: 'TFUI_InvTooltip_MinimalWear', - localized_category_name: 'Exterior', - localized_tag_name: 'Minimal Wear', - }], - }, true, true, { retrieveCrateNumber: false }); + const econItem = parseEconItem( + { + appid: 440, + contextid: '2', + assetid: '8407830034', + classid: '3662018019', + instanceid: '11040671', + amount: '1', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w', + descriptions: [ + { + value: 'Mercenary Grade Flame Thrower (Minimal Wear)', + color: '4b69ff', + }, + { value: '★ Unusual Effect: Cool', color: 'ffd700' }, + { value: 'Festivized', color: 'ffd700' }, + { + value: 'Extinguishing teammates restores 20 health', + color: '7ea9d1', + }, + { value: 'Sheen: Agonizing Emerald', color: '7ea9d1' }, + { + value: 'Killstreaks Active', + color: '7ea9d1', + }, + { + value: 'Afterburn reduces Medi Gun healing and resist shield effects.\nAlt-Fire: Release a blast of air that pushes enemies and projectiles and extinguishes teammates that are on fire.', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Concealed Killer Collection' }, + { + value: ' Sand Cannon Rocket Launcher', + color: 'eb4b4b', + }, + { + value: ' Red Rock Roscoe Pistol', + color: 'eb4b4b', + }, + { + value: ' Psychedelic Slugger Revolver', + color: 'd32ce6', + }, + { + value: ' Purple Range Sniper Rifle', + color: 'd32ce6', + }, + { + value: ' Sudden Flurry Stickybomb Launcher', + color: 'd32ce6', + }, + { + value: ' Night Terror Scattergun', + color: '8847ff', + }, + { + value: ' Carpet Bomber Stickybomb Launcher', + color: '8847ff', + }, + { + value: ' Woodland Warrior Rocket Launcher', + color: '8847ff', + }, + { + value: ' Wrapped Reviver Medi Gun', + color: '8847ff', + }, + { + value: ' Night Owl Sniper Rifle', + color: '4b69ff', + }, + { value: ' Woodsy Widowmaker SMG', color: '4b69ff' }, + { + value: ' Backwoods Boomstick Shotgun', + color: '4b69ff', + }, + { + value: ' King of the Jungle Minigun', + color: '4b69ff', + }, + { + value: ' Masked Mender Medi Gun', + color: '4b69ff', + }, + { + value: '★ Forest Fire Flame Thrower', + color: '4b69ff', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=15005&lang=en_US', + name: 'Item Wiki Page...', + }, + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + name: 'Festivized Forest Fire Flame Thrower', + name_color: '8650AC', + type: '', + market_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_hash_name: + 'Unusual Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + market_actions: [ + { + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D6922402693932635553', + name: 'Inspect in Game...', + }, + ], + commodity: 0, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 1, + tags: [ + { + category: 'Quality', + internal_name: 'rarity4', + localized_category_name: 'Quality', + localized_tag_name: 'Unusual', + color: '8650AC', + }, + { + category: 'Type', + internal_name: 'primary', + localized_category_name: 'Type', + localized_tag_name: 'Primary weapon', + }, + { + category: 'Class', + internal_name: 'Pyro', + localized_category_name: 'Class', + localized_tag_name: 'Pyro', + }, + { + category: 'Rarity', + internal_name: 'Rarity_Rare', + localized_category_name: 'Grade', + localized_tag_name: 'Mercenary', + color: '4b69ff', + }, + { + category: 'Collection', + internal_name: 'concealedkiller_collection', + localized_category_name: 'Collection', + localized_tag_name: 'Concealed Killer Collection', + }, + { + category: 'Exterior', + internal_name: 'TFUI_InvTooltip_MinimalWear', + localized_category_name: 'Exterior', + localized_tag_name: 'Minimal Wear', + }, + ], + }, + true, + true, + { retrieveCrateNumber: false } + ); assert.deepEqual(econItem, { name: 'Flame Thrower', - fullName: 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', + fullName: + 'Cool Festivized Specialized Killstreak Forest Fire Flame Thrower (Minimal Wear)', id: '8407830034', img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEMaQkUTxr2vTx8mMnvA-aHAfQ_ktk664MayTdinxVwPffsDz5zdwmTVPAOCcot8Qn-Wxg07dR3XcGzub5ffwvmttSXYrAlY9xFTMaCUvbXNQz_6EkwiPRYKJaIon-9jHjrOWoUG0280KDki-w/', tradable: true, @@ -5080,203 +7655,405 @@ describe('Econ item with true defindex', () => { }); it('Retrieves crate number correctly for crate', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '4657007866', - instanceid: '0', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', - icon_drag_url: '', - name: 'Winter 2021 Cosmetic Case', - market_hash_name: 'Winter 2021 Cosmetic Case', - market_name: 'Winter 2021 Cosmetic Case', - name_color: '7D6D00', - background_color: '3C352E', - type: '', - tradable: 1, - marketable: 1, - commodity: 1, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ - value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', - }, { value: ' ' }, { - value: 'Contents may be Strange or an Unusual Winter 2021 Hat', color: '7ea9d1', - }, { value: ' ' }, { value: ' ' }, { value: 'Winter 2021 Cosmetics Collection' }, { - value: ' Oh Deer!', color: 'eb4b4b', app_data: { def_index: '31245' }, - }, { - value: ' Jolly Jester', color: 'd32ce6', app_data: { def_index: '31243' }, - }, { - value: ' Merry Cone', color: 'd32ce6', app_data: { def_index: '31247' }, - }, { - value: ' Hat Chocolate', color: 'd32ce6', app_data: { def_index: '31259' }, - }, { - value: ' Elf-Made Bandanna', color: '8847ff', app_data: { def_index: '31260' }, - }, { - value: ' Seasonal Spring', color: '8847ff', app_data: { def_index: '31244' }, - }, { - value: ' Elf Ignition', color: '8847ff', app_data: { def_index: '31253' }, - }, { - value: ' Train Of Thought', color: '8847ff', app_data: { def_index: '31254' }, - }, { - value: ' Seasonal Employee', color: '8847ff', app_data: { def_index: '31258' }, - }, { - value: ' Reindoonihorns', color: '8847ff', app_data: { def_index: '31249' }, - }, { - value: ' Festive Cover-Up', color: '4b69ff', app_data: { def_index: '31257' }, - }, { - value: ' El Fiestibrero', color: '4b69ff', app_data: { def_index: '31241' }, - }, { - value: ' Ominous Offering', color: '4b69ff', app_data: { def_index: '31251' }, - }, { - value: ' Brain Cane', color: '4b69ff', app_data: { def_index: '31248' }, - }, { - value: ' Cozy Catchers', color: '4b69ff', app_data: { def_index: '31250' }, - }, { - value: ' The Giftcrafter', color: '4b69ff', app_data: { def_index: '31246' }, - }, { - value: ' Festive Frames', color: '4b69ff', app_data: { def_index: '31252' }, - }, { - value: ' Mooshanka', color: '4b69ff', app_data: { def_index: '31255' }, - }, { - value: ' Elf Defense', color: '4b69ff', app_data: { def_index: '31256' }, - }, { - value: ' Gnome Dome', color: '4b69ff', app_data: { def_index: '31242' }, - }, { value: ' ' }, { value: 'Case Exclusive Bonus Item(s):' }, { - value: 'Festivizer', color: '6F6A63', app_data: { def_index: '5839' }, - }, { value: ' ' }, { value: 'Case Global Unusual Effect(s)' }, { - value: '★ Unusual Effect: Green Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Confetti', color: 'ffd700', - }, { - value: '★ Unusual Effect: Haunted Ghosts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Green Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Purple Energy', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling TF Logo', color: 'ffd700', - }, { - value: '★ Unusual Effect: Massed Flies', color: 'ffd700', - }, { - value: '★ Unusual Effect: Burning Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Scorching Flames', color: 'ffd700', - }, { - value: '★ Unusual Effect: Searing Plasma', color: 'ffd700', - }, { - value: '★ Unusual Effect: Vivid Plasma', color: 'ffd700', - }, { - value: '★ Unusual Effect: Sunbeams', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling Peace Sign', color: 'ffd700', - }, { - value: '★ Unusual Effect: Circling Heart', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stormy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Blizzardy Storm', color: 'ffd700', - }, { - value: '★ Unusual Effect: Nuts n\' Bolts', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Planets', color: 'ffd700', - }, { - value: '★ Unusual Effect: Orbiting Fire', color: 'ffd700', - }, { - value: '★ Unusual Effect: Bubbling', color: 'ffd700', - }, { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, { - value: '★ Unusual Effect: Steaming', color: 'ffd700', - }, { - value: '★ Unusual Effect: Kill-a-Watt', color: 'ffd700', - }, { - value: '★ Unusual Effect: Terror-Watt', color: 'ffd700', - }, { value: '★ Unusual Effect: Cloud 9', color: 'ffd700' }, { - value: '★ Unusual Effect: Aces High', color: 'ffd700', - }, { - value: '★ Unusual Effect: Dead Presidents', color: 'ffd700', - }, { - value: '★ Unusual Effect: Miami Nights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Disco Beat Down', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Smissmas Tree', color: 'ffd700', - }, { - value: '★ Unusual Effect: Hospitable Festivity', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Condescending Embrace', color: 'ffd700', - }, { - value: '★ Unusual Effect: Sparkling Spruce', color: 'ffd700', - }, { - value: '★ Unusual Effect: Glittering Juniper', color: 'ffd700', - }, { - value: '★ Unusual Effect: Prismatic Pine', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spiraling Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Twisting Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Stardust Pathway', color: 'ffd700', - }, { - value: '★ Unusual Effect: Flurry Rush', color: 'ffd700', - }, { - value: '★ Unusual Effect: Spark of Smissmas', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Polar Forecast', color: 'ffd700', - }, { - value: '★ Unusual Effect: Shining Stag', color: 'ffd700', - }, { - value: '★ Unusual Effect: Holiday Horns', color: 'ffd700', - }, { - value: '★ Unusual Effect: Ardent Antlers', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { - value: '★ Unusual Effect: Festive Lights', color: 'ffd700', - }, { value: ' ' }, { value: 'Case Global Bonus Item(s)' }, { - value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', - }, { - value: 'Inspect for full list of unusual effects and more details', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', - }, { - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', - }], - market_actions: [{ - name: 'Inspect in Game...', - link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', - }], - tags: [{ - internal_name: 'Unique', - name: 'Unique', - category: 'Quality', - color: '7D6D00', - category_name: 'Quality', - }, { - internal_name: 'Supply Crate', name: 'Crate', category: 'Type', category_name: 'Type', - }, { - internal_name: 'Winter2021Cosmetics_collection', - name: 'Winter 2021 Cosmetics Collection', - category: 'Collection', - category_name: 'Collection', - }], - }, false, false, { retrieveCrateNumber: false }); + const econItem = parseEconItem( + { + appid: '440', + classid: '4657007866', + instanceid: '0', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYYQ4CThbjqwcR2Jq3MvGNG-U_l9sn4pUbjjc5xAUjMOfnaGNiKwKVA_IIBPRr8lm1XHEzvMY2DIG3rr9eewnns5yGbeenE9nBew', + icon_drag_url: '', + name: 'Winter 2021 Cosmetic Case', + market_hash_name: 'Winter 2021 Cosmetic Case', + market_name: 'Winter 2021 Cosmetic Case', + name_color: '7D6D00', + background_color: '3C352E', + type: '', + tradable: 1, + marketable: 1, + commodity: 1, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { + value: 'This case is locked and requires a\nWinter 2021 Cosmetic Key to open.\n\nContains a community made item\nfrom the Winter 2021 Cosmetic Collection.', + }, + { value: ' ' }, + { + value: 'Contents may be Strange or an Unusual Winter 2021 Hat', + color: '7ea9d1', + }, + { value: ' ' }, + { value: ' ' }, + { value: 'Winter 2021 Cosmetics Collection' }, + { + value: ' Oh Deer!', + color: 'eb4b4b', + app_data: { def_index: '31245' }, + }, + { + value: ' Jolly Jester', + color: 'd32ce6', + app_data: { def_index: '31243' }, + }, + { + value: ' Merry Cone', + color: 'd32ce6', + app_data: { def_index: '31247' }, + }, + { + value: ' Hat Chocolate', + color: 'd32ce6', + app_data: { def_index: '31259' }, + }, + { + value: ' Elf-Made Bandanna', + color: '8847ff', + app_data: { def_index: '31260' }, + }, + { + value: ' Seasonal Spring', + color: '8847ff', + app_data: { def_index: '31244' }, + }, + { + value: ' Elf Ignition', + color: '8847ff', + app_data: { def_index: '31253' }, + }, + { + value: ' Train Of Thought', + color: '8847ff', + app_data: { def_index: '31254' }, + }, + { + value: ' Seasonal Employee', + color: '8847ff', + app_data: { def_index: '31258' }, + }, + { + value: ' Reindoonihorns', + color: '8847ff', + app_data: { def_index: '31249' }, + }, + { + value: ' Festive Cover-Up', + color: '4b69ff', + app_data: { def_index: '31257' }, + }, + { + value: ' El Fiestibrero', + color: '4b69ff', + app_data: { def_index: '31241' }, + }, + { + value: ' Ominous Offering', + color: '4b69ff', + app_data: { def_index: '31251' }, + }, + { + value: ' Brain Cane', + color: '4b69ff', + app_data: { def_index: '31248' }, + }, + { + value: ' Cozy Catchers', + color: '4b69ff', + app_data: { def_index: '31250' }, + }, + { + value: ' The Giftcrafter', + color: '4b69ff', + app_data: { def_index: '31246' }, + }, + { + value: ' Festive Frames', + color: '4b69ff', + app_data: { def_index: '31252' }, + }, + { + value: ' Mooshanka', + color: '4b69ff', + app_data: { def_index: '31255' }, + }, + { + value: ' Elf Defense', + color: '4b69ff', + app_data: { def_index: '31256' }, + }, + { + value: ' Gnome Dome', + color: '4b69ff', + app_data: { def_index: '31242' }, + }, + { value: ' ' }, + { value: 'Case Exclusive Bonus Item(s):' }, + { + value: 'Festivizer', + color: '6F6A63', + app_data: { def_index: '5839' }, + }, + { value: ' ' }, + { value: 'Case Global Unusual Effect(s)' }, + { + value: '★ Unusual Effect: Green Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Confetti', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Haunted Ghosts', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Green Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Purple Energy', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling TF Logo', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Massed Flies', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Burning Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Scorching Flames', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Searing Plasma', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Vivid Plasma', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Sunbeams', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling Peace Sign', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Circling Heart', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stormy Storm', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Blizzardy Storm', + color: 'ffd700', + }, + { + value: "★ Unusual Effect: Nuts n' Bolts", + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Planets', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Orbiting Fire', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Bubbling', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Smoking', color: 'ffd700' }, + { + value: '★ Unusual Effect: Steaming', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Kill-a-Watt', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Terror-Watt', + color: 'ffd700', + }, + { value: '★ Unusual Effect: Cloud 9', color: 'ffd700' }, + { + value: '★ Unusual Effect: Aces High', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Dead Presidents', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Miami Nights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Disco Beat Down', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Smissmas Tree', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Hospitable Festivity', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Condescending Embrace', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Sparkling Spruce', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Glittering Juniper', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Prismatic Pine', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spiraling Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Twisting Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Stardust Pathway', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Flurry Rush', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Spark of Smissmas', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Polar Forecast', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Shining Stag', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Holiday Horns', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Ardent Antlers', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { + value: '★ Unusual Effect: Festive Lights', + color: 'ffd700', + }, + { value: ' ' }, + { value: 'Case Global Bonus Item(s)' }, + { + value: 'Paint Cans!\nTaunt Unusualifiers!\nMvM Tickets!\nAnd TF2 Tools!', + }, + { + value: 'Inspect for full list of unusual effects and more details', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5935&lang=en_US', + }, + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20S%owner_steamid%A%assetid%D2496517253638132563', + }, + ], + market_actions: [ + { + name: 'Inspect in Game...', + link: 'steam://rungame/440/76561202255233023/+tf_econ_item_preview%20M%listingid%A%assetid%D2496517253638132563', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'Supply Crate', + name: 'Crate', + category: 'Type', + category_name: 'Type', + }, + { + internal_name: 'Winter2021Cosmetics_collection', + name: 'Winter 2021 Cosmetics Collection', + category: 'Collection', + category_name: 'Collection', + }, + ], + }, + false, + false, + { retrieveCrateNumber: false } + ); assert.deepEqual(econItem, { classes: [], @@ -5298,82 +8075,152 @@ describe('Econ item with true defindex', () => { }); it('Retrieves crate number for munition crate that has it in name', () => { - const econItem = parseEconItem({ - appid: '440', - classid: '1848848533', - instanceid: '4005345694', - icon_url: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', - icon_url_large: 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', - icon_drag_url: '', - name: 'Mann Co. Supply Munition Series #103', - market_hash_name: 'Mann Co. Supply Munition #103', - market_name: 'Mann Co. Supply Munition #103', - name_color: '7D6D00', - background_color: '3C352E', - type: 'Level 20 Supply Crate', - tradable: 1, - marketable: 1, - commodity: 1, - market_tradable_restriction: '7', - market_marketable_restriction: '0', - descriptions: [{ value: 'Crate Series #103', color: '7ea9d1' }, { - value: 'You need a Mann Co. Supply Crate Key to open this.\nYou can pick one up at the Mann Co. Store.', - }, { - value: '\nGift from: MothmanOfficial', color: '7ea9d1', - }, { - value: 'Date Received: Sunday, September 20, 2020 (13:59:02) GMT', - }, { value: ' ' }, { - value: 'This crate contains one of the following items.\nWeapons will be Strange quality.', - }, { - value: ' The Iron Bomber', color: '6F6A63', app_data: { def_index: '1151' }, - }, { - value: ' The Panic Attack', color: '6F6A63', app_data: { def_index: '1153' }, - }, { - value: ' The Back Scatter', color: '6F6A63', app_data: { def_index: '1103' }, - }, { - value: ' The Quickiebomb Launcher', color: '6F6A63', app_data: { def_index: '1150' }, - }, { - value: ' The Ambassador', color: '6F6A63', app_data: { def_index: '61' }, - }, { - value: ' The Reserve Shooter', color: '6F6A63', app_data: { def_index: '415' }, - }, { - value: ' The Degreaser', color: '6F6A63', app_data: { def_index: '215' }, - }, { - value: ' The Powerjack', color: '6F6A63', app_data: { def_index: '214' }, - }, { - value: ' Natascha', color: '6F6A63', app_data: { def_index: '41' }, - }, { - value: ' The Sandvich', color: '6F6A63', app_data: { def_index: '42' }, - }, { - value: ' Strange Part: Damage Dealt', color: '6F6A63', app_data: { def_index: '6056' }, - }, { - value: ' Strange Part: Allied Healing Done', color: '6F6A63', app_data: { def_index: '6058' }, - }, { - value: ' Strange Part: Critical Kills', color: '6F6A63', app_data: { def_index: '6021' }, - }, { - value: ' Strange Part: Pyros Killed', color: '6F6A63', app_data: { def_index: '6006' }, - }, { - value: ' Strange Part: Heavies Killed', color: '6F6A63', app_data: { def_index: '6000' }, - }, { - value: 'or an Exceedingly Rare Special Item!', color: '7ea9d1', - }], - actions: [{ - name: 'Item Wiki Page...', - link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5859&lang=en_US', - }], - tags: [{ - internal_name: 'Unique', - name: 'Unique', - category: 'Quality', - color: '7D6D00', - category_name: 'Quality', - }, { - internal_name: 'Supply Crate', name: 'Crate', category: 'Type', category_name: 'Type', - }], - app_data: { def_index: '5859', quality: '6' }, - }, false, false, { - retrieveCrateNumber: true, - }); + const econItem = parseEconItem( + { + appid: '440', + classid: '1848848533', + instanceid: '4005345694', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw', + icon_drag_url: '', + name: 'Mann Co. Supply Munition Series #103', + market_hash_name: 'Mann Co. Supply Munition #103', + market_name: 'Mann Co. Supply Munition #103', + name_color: '7D6D00', + background_color: '3C352E', + type: 'Level 20 Supply Crate', + tradable: 1, + marketable: 1, + commodity: 1, + market_tradable_restriction: '7', + market_marketable_restriction: '0', + descriptions: [ + { value: 'Crate Series #103', color: '7ea9d1' }, + { + value: 'You need a Mann Co. Supply Crate Key to open this.\nYou can pick one up at the Mann Co. Store.', + }, + { + value: '\nGift from: MothmanOfficial', + color: '7ea9d1', + }, + { + value: 'Date Received: Sunday, September 20, 2020 (13:59:02) GMT', + }, + { value: ' ' }, + { + value: 'This crate contains one of the following items.\nWeapons will be Strange quality.', + }, + { + value: ' The Iron Bomber', + color: '6F6A63', + app_data: { def_index: '1151' }, + }, + { + value: ' The Panic Attack', + color: '6F6A63', + app_data: { def_index: '1153' }, + }, + { + value: ' The Back Scatter', + color: '6F6A63', + app_data: { def_index: '1103' }, + }, + { + value: ' The Quickiebomb Launcher', + color: '6F6A63', + app_data: { def_index: '1150' }, + }, + { + value: ' The Ambassador', + color: '6F6A63', + app_data: { def_index: '61' }, + }, + { + value: ' The Reserve Shooter', + color: '6F6A63', + app_data: { def_index: '415' }, + }, + { + value: ' The Degreaser', + color: '6F6A63', + app_data: { def_index: '215' }, + }, + { + value: ' The Powerjack', + color: '6F6A63', + app_data: { def_index: '214' }, + }, + { + value: ' Natascha', + color: '6F6A63', + app_data: { def_index: '41' }, + }, + { + value: ' The Sandvich', + color: '6F6A63', + app_data: { def_index: '42' }, + }, + { + value: ' Strange Part: Damage Dealt', + color: '6F6A63', + app_data: { def_index: '6056' }, + }, + { + value: ' Strange Part: Allied Healing Done', + color: '6F6A63', + app_data: { def_index: '6058' }, + }, + { + value: ' Strange Part: Critical Kills', + color: '6F6A63', + app_data: { def_index: '6021' }, + }, + { + value: ' Strange Part: Pyros Killed', + color: '6F6A63', + app_data: { def_index: '6006' }, + }, + { + value: ' Strange Part: Heavies Killed', + color: '6F6A63', + app_data: { def_index: '6000' }, + }, + { + value: 'or an Exceedingly Rare Special Item!', + color: '7ea9d1', + }, + ], + actions: [ + { + name: 'Item Wiki Page...', + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=5859&lang=en_US', + }, + ], + tags: [ + { + internal_name: 'Unique', + name: 'Unique', + category: 'Quality', + color: '7D6D00', + category_name: 'Quality', + }, + { + internal_name: 'Supply Crate', + name: 'Crate', + category: 'Type', + category_name: 'Type', + }, + ], + app_data: { def_index: '5859', quality: '6' }, + }, + false, + false, + { + retrieveCrateNumber: true, + } + ); assert.deepEqual(econItem, { classes: [], @@ -5381,7 +8228,8 @@ describe('Econ item with true defindex', () => { craftable: true, fullName: 'Mann Co. Supply Munition #103', itemNumber: { - value: 103, type: 'crate', + value: 103, + type: 'crate', }, id: undefined, img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIfgYFWCTxrCpChs_jMuWJCfAPlckK6ZFH3jMlx1kpYbHgNTYyKgGUVPdbCfM_rAm0WiRguJYxBtGzruxReQ3ntoLBZa5sbo_yPNmUMw/', @@ -5395,5 +8243,120 @@ describe('Econ item with true defindex', () => { marketable: true, }); }); + + it('', () => { + const econItem = parseEconItem({ + appid: 440, + classid: '2569815294', + instanceid: '1096263353', + currency: 0, + background_color: '3C352E', + icon_url: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbbQ4fSRDrrAdBncbiAfezWLI_l9sn4pUb32c9xFV9ZufhMWIxIgDGVvEPC_Q_owy1XHJm7pA7DYTgrukFfV65sZyGbedogsZa1A', + icon_url_large: + 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbbQ4fSRDrrAdBncbiAfezWLI_l9sn4pUb32c9xFV9ZufhMWIxIgDGVvEPC_Q_owy1XHJm7pA7DYTgrukFfV65sZyGbedogsZa1A', + descriptions: [ + { + value: 'A Freelance Grade or better War Paint from the Contract Campaigner Collection', + }, + { + value: ' ', + }, + { + value: 'This keyless case contains one of the following items:', + }, + { + value: ' Bovine Blazemaker Mk.II War Paint', + color: '8847ff', + }, + { + value: ' Dead Reckoner Mk.II War Paint', + color: '8847ff', + }, + { + value: ' Masked Mender Mk.II War Paint', + color: '4b69ff', + }, + { + value: ' Backwoods Boomstick Mk.II War Paint', + color: '4b69ff', + }, + { + value: ' Iron Wood Mk.II War Paint', + color: '5e98d9', + }, + { + value: ' Macabre Web Mk.II War Paint', + color: '5e98d9', + }, + { + value: '', + color: '7ea9d1', + }, + { + value: ' ', + }, + { + value: 'This is a limited use item. Uses: 1', + color: '00a000', + }, + ], + tradable: 1, + actions: [ + { + link: 'http://wiki.teamfortress.com/scripts/itemredirect.php?id=18004&lang=en_US', + name: 'Item Wiki Page...', + }, + ], + name: "'Contract Campaigner' War Paint\nFreelance Grade Keyless Case", + name_color: '7D6D00', + type: '', + market_name: + "'Contract Campaigner' War Paint\nFreelance Grade Keyless Case Series #115", + market_hash_name: + "'Contract Campaigner' War Paint\nFreelance Grade Keyless Case Series #115", + commodity: 1, + market_tradable_restriction: 7, + market_marketable_restriction: 0, + marketable: 0, + tags: [ + { + category: 'Quality', + internal_name: 'Unique', + localized_category_name: 'Quality', + localized_tag_name: 'Unique', + color: '7D6D00', + }, + { + category: 'Type', + internal_name: 'Supply Crate', + localized_category_name: 'Type', + localized_tag_name: 'Crate', + }, + ], + }); + + assert.deepEqual(econItem, { + classes: [], + commodity: true, + craftable: true, + fullName: + "'Contract Campaigner' War Paint Freelance Grade Keyless Case #115", + id: undefined, + name: "'Contract Campaigner' War Paint Freelance Grade Keyless Case", + parts: [], + quality: 'Unique', + spells: [], + tradable: true, + level: -1, + type: 'Supply Crate', + marketable: false, + itemNumber: { + type: 'crate', + value: 115, + }, + img: 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEbbQ4fSRDrrAdBncbiAfezWLI_l9sn4pUb32c9xFV9ZufhMWIxIgDGVvEPC_Q_owy1XHJm7pA7DYTgrukFfV65sZyGbedogsZa1A/', + }); + }); }); }); diff --git a/test/stringify.js b/test/stringify.js index 9c56ee5..67ef08b 100644 --- a/test/stringify.js +++ b/test/stringify.js @@ -740,8 +740,11 @@ describe('stringify from defindexes and numbers.', () => { defindex: 18004, itemNumber: { type: 'crate', value: 115 }, }); -[] - assert.deepEqual(itemString, "'Contract Campaigner' War Paint Freelance Grade Keyless Case #115"); + + assert.deepEqual( + itemString, + "'Contract Campaigner' War Paint Freelance Grade Keyless Case #115" + ); }); }); diff --git a/tsconfig.json b/tsconfig.json index 18fb280..6bdb92d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ "declaration": true, /* Generates corresponding '.d.ts' file. */ // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - // "sourceMap": true, /* Generates corresponding '.map' file. */ + "sourceMap": true, /* Generates corresponding '.map' file. */ // "outFile": "./", /* Concatenate and emit output to single file. */ "outDir": "./dist", /* Redirect output structure to the directory. */ "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */