mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-11 20:02:09 +00:00
TS: Add an Approval base test similar to Java-Approvals and CS-xunit-verify using Jest Snapshot.
This commit is contained in:
parent
2a96f34022
commit
d9f80abd06
54
TypeScript/test/jest/approvals.spec.ts
Normal file
54
TypeScript/test/jest/approvals.spec.ts
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import { Item, GildedRose } from '@/gilded-rose';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This unit test uses [Jest Snapshot](https://goo.gl/fbAQLP).
|
||||||
|
*
|
||||||
|
* There are two test cases here with different styles:
|
||||||
|
* <li>"foo" is more similar to the unit test from the 'Java' version
|
||||||
|
* <li>"thirtyDays" is more similar to the TextTest from the 'Java' version
|
||||||
|
*
|
||||||
|
* I suggest choosing one style to develop and deleting the other.
|
||||||
|
*/
|
||||||
|
|
||||||
|
describe('Gilded Rose Approval', () => {
|
||||||
|
|
||||||
|
let gameConsoleOutput: string;
|
||||||
|
let originalConsoleLog: (message: any) => void;
|
||||||
|
let originalProcessArgv: string[]
|
||||||
|
|
||||||
|
function gameConsoleLog(msg: string) {
|
||||||
|
if (msg) {
|
||||||
|
gameConsoleOutput += msg;
|
||||||
|
}
|
||||||
|
gameConsoleOutput += "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
// prepare capturing console.log to our own gameConsoleLog.
|
||||||
|
gameConsoleOutput = "";
|
||||||
|
originalConsoleLog = console.log;
|
||||||
|
console.log = gameConsoleLog;
|
||||||
|
originalProcessArgv = process.argv;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
// reset original console.log
|
||||||
|
console.log = originalConsoleLog;
|
||||||
|
process.argv = originalProcessArgv;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should foo', () => {
|
||||||
|
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);
|
||||||
|
const items = gildedRose.updateQuality();
|
||||||
|
|
||||||
|
expect(items).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should thirtyDays', () => {
|
||||||
|
process.argv = ["<node>", "<script", "30"];
|
||||||
|
require('../golden-master-text-test.ts');
|
||||||
|
|
||||||
|
expect(gameConsoleOutput).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user