snippet des "Describe (js)"
	describe('${1:description}', function() {
		$0
	});

snippet it "it (js)"
	it('${1:description}', function() {
		$0
	});

snippet bef "before each (js)"
	beforeEach(function() {
		$0
	});

snippet aft "after each (js)"
	afterEach(function() {
		$0
	});

snippet befa "before all (js)"
	beforeAll(function() {
		$0
	});

snippet afta "after all (js)"
	afterAll(function() {
		$0
	});

snippet any "any (js)"
	jasmine.any($1)

snippet anyt "anything (js)"
	jasmine.anything()

snippet objc "object containing (js)"
	jasmine.objectContaining({
		${VISUAL}$0
	});

snippet arrc "array containing (js)"
	jasmine.arrayContaining([${1:value1}]);

snippet strm "string matching (js)"
	jasmine.stringMatching("${1:matcher}")

snippet ru "runs (js)"
	runs(function() {
		$0
	});

snippet wa "waits (js)"
	waits($1);

snippet ex "expect (js)"
	expect(${1:target})$0;

snippet ee "expect to equal (js)"
	expect(${1:target}).toEqual(${2:value});

snippet el "expect to be less than (js)"
	expect(${1:target}).toBeLessThan(${2:value});

snippet eg "expect to be greater than (js)"
	expect(${1:target}).toBeGreaterThan(${2:value});

snippet eb "expect to be (js)"
	expect(${1:target}).toBe(${2:value});

snippet em "expect to match (js)"
	expect(${1:target}).toMatch(${2:pattern});

snippet eha "expect to have attribute (js)"
	expect(${1:target}).toHaveAttr('${2:attr}'${3:, '${4:value}'});

snippet et "expect to be truthy (js)"
	expect(${1:target}).toBeTruthy();

snippet ef "expect to be falsy (js)"
	expect(${1:target}).toBeFalsy();

snippet etbd "expect to be defined (js)"
	expect(${1:target}).toBeDefined();

snippet eud "expect to be defined (js)"
	expect(${1:target}).toBeUndefined();

snippet en "expect to be null (js)"
	expect(${1:target}).toBeNull();

snippet ec "expect to contain (js)"
	expect(${1:target}).toContain(${2:value});

snippet ev "expect to be visible (js)"
	expect(${1:target}).toBeVisible();

snippet eh "expect to be hidden (js)"
	expect(${1:target}).toBeHidden();

snippet eth "expect to throw (js)"
	expect(${1:target}).toThrow(${2:value});

snippet ethe "expect to throw error (js)"
	expect(${1:target}).toThrowError(${2:value});

snippet notx "expect not (js)"
	expect(${1:target}).not$0;

snippet note "expect not to equal (js)"
	expect(${1:target}).not.toEqual(${2:value});

snippet notl "expect to not be less than (js)"
	expect(${1:target}).not.toBeLessThan(${2:value});

snippet notg "expect to not be greater than (js)"
	expect(${1:target}).not.toBeGreaterThan(${2:value});

snippet notm "expect not to match (js)"
	expect(${1:target}).not.toMatch(${2:pattern});

snippet notha "expect to not have attribute (js)"
	expect(${1:target}).not.toHaveAttr('${2:attr}'${3:, '${4:value}'});

snippet nott "expect not to be truthy (js)"
	expect(${1:target}).not.toBeTruthy();

snippet notf "expect not to be falsy (js)"
	expect(${1:target}).not.toBeFalsy();

snippet notd "expect not to be defined (js)"
	expect(${1:target}).not.toBeDefined();

snippet notn "expect not to be null (js)"
	expect(${1:target}).not.toBeNull();

snippet notc "expect not to contain (js)"
	expect(${1:target}).not.toContain(${2:value});

snippet notv "expect not to be visible (js)"
	expect(${1:target}).not.toBeVisible();

snippet noth "expect not to be hidden (js)"
	expect(${1:target}).not.toBeHidden();

snippet notth "expect not to throw (js)"
	expect(${1:target}).not.toThrow(${2:value});

snippet notthe "expect not to throw error (js)"
	expect(${1:target}).not.toThrowError(${2:value});

snippet s "spy on (js)"
	spyOn(${1:object}, '${2:method}')$0;

snippet sr "spy on and return (js)"
	spyOn(${1:object}, '${2:method}').and.returnValue(${3:arguments});

snippet st "spy on and throw (js)"
	spyOn(${1:object}, '${2:method}').and.throwError(${3:exception});

snippet sct "spy on and call through (js)"
	spyOn(${1:object}, '${2:method}').and.callThrough();

snippet scf "spy on and call fake (js)"
	spyOn(${1:object}, '${2:method}').and.callFake(${3:function});

snippet ethbc "expect to have been called (js)"
	expect(${1:target}).toHaveBeenCalled();

snippet nthbc "expect not to have been called (js)"
	expect(${1:target}).not.toHaveBeenCalled();

snippet ethbcw "expect to have been called with (js)"
	expect(${1:target}).toHaveBeenCalledWith(${2:arguments});