mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-28 11:02:36 +00:00 
			
		
		
		
	 5736b53013
			
		
	
	
		5736b53013
		
	
	
	
	
		
			
			The Iterator object cannot be constructed directly but can be subclassed or created with `Iterator.from` (not implemented here).
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			817 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			817 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| describe("errors", () => {
 | |
|     test("called without new", () => {
 | |
|         expect(() => {
 | |
|             Iterator();
 | |
|         }).toThrowWithMessage(TypeError, "Iterator constructor must be called with 'new'");
 | |
|     });
 | |
| 
 | |
|     test("cannot be directly constructed", () => {
 | |
|         expect(() => {
 | |
|             new Iterator();
 | |
|         }).toThrowWithMessage(TypeError, "Abstract class Iterator cannot be constructed directly");
 | |
|     });
 | |
| });
 | |
| 
 | |
| describe("normal behavior", () => {
 | |
|     test("length is 0", () => {
 | |
|         expect(Iterator).toHaveLength(0);
 | |
|     });
 | |
| 
 | |
|     test("can be constructed from with subclass", () => {
 | |
|         class TestIterator extends Iterator {}
 | |
| 
 | |
|         const iterator = new TestIterator();
 | |
|         expect(iterator).toBeInstanceOf(TestIterator);
 | |
|         expect(iterator).toBeInstanceOf(Iterator);
 | |
|     });
 | |
| });
 |