Add tests for different types of cleanup
This commit is contained in:
		
							parent
							
								
									a0e3f70dbb
								
							
						
					
					
						commit
						b412eee646
					
				|  | @ -1,7 +1,7 @@ | |||
| import { environment, SqProject, SqValue } from "@quri/squiggle-lang"; | ||||
| import { useEffect, useMemo } from "react"; | ||||
| import { JsImports, jsImportsToSquiggleCode } from "../jsImports"; | ||||
| import * as uuid from 'uuid'; | ||||
| import * as uuid from "uuid"; | ||||
| 
 | ||||
| type SquiggleArgs = { | ||||
|   code?: string; | ||||
|  |  | |||
|  | @ -4,16 +4,58 @@ import "@testing-library/jest-dom"; | |||
| import { SquiggleChart } from "../src/index"; | ||||
| import { SqProject } from "@quri/squiggle-lang"; | ||||
| 
 | ||||
| test("Creates and cleans up source", async () => { | ||||
| test("Creates and cleans up source with no name", async () => { | ||||
|   const project = SqProject.create(); | ||||
| 
 | ||||
|   const { unmount } = render(<SquiggleChart code={"normal(0, 1)"} project={project} />); | ||||
|   expect(project.getSourceIds().length).toBe(1) | ||||
|   const { unmount } = render( | ||||
|     <SquiggleChart code={"normal(0, 1)"} project={project} /> | ||||
|   ); | ||||
|   expect(project.getSourceIds().length).toBe(1); | ||||
| 
 | ||||
|   const sourceId = project.getSourceIds()[0] | ||||
|   expect(project.getSource(sourceId)).toBe("normal(0, 1)") | ||||
|   const sourceId = project.getSourceIds()[0]; | ||||
|   expect(project.getSource(sourceId)).toBe("normal(0, 1)"); | ||||
| 
 | ||||
|   unmount(); | ||||
|   expect(project.getSourceIds().length).toBe(0) | ||||
|   expect(project.getSource(sourceId)).toBe(undefined) | ||||
|   expect(project.getSourceIds().length).toBe(0); | ||||
|   expect(project.getSource(sourceId)).toBe(undefined); | ||||
| }); | ||||
| 
 | ||||
| test("Does not clean up existing source", async () => { | ||||
|   const project = SqProject.create(); | ||||
| 
 | ||||
|   project.setSource("main", "normal(0, 1)"); | ||||
| 
 | ||||
|   const { unmount } = render( | ||||
|     <SquiggleChart sourceName={"main"} project={project} /> | ||||
|   ); | ||||
| 
 | ||||
|   expect(project.getSourceIds()).toStrictEqual(["main"]); | ||||
| 
 | ||||
|   const sourceId = project.getSourceIds()[0]; | ||||
|   expect(project.getSource(sourceId)).toBe("normal(0, 1)"); | ||||
| 
 | ||||
|   unmount(); | ||||
|   expect(project.getSourceIds()).toStrictEqual(["main"]); | ||||
|   expect(project.getSource(sourceId)).toBe("normal(0, 1)"); | ||||
| }); | ||||
| 
 | ||||
| test("Does clean up when given non-existant source", async () => { | ||||
|   const project = SqProject.create(); | ||||
| 
 | ||||
|   const { unmount } = render( | ||||
|     <SquiggleChart | ||||
|       code={"normal(0, 1)"} | ||||
|       sourceName={"main"} | ||||
|       project={project} | ||||
|     /> | ||||
|   ); | ||||
| 
 | ||||
|   expect(project.getSourceIds()).toStrictEqual(["main"]); | ||||
| 
 | ||||
|   const sourceId = project.getSourceIds()[0]; | ||||
|   expect(project.getSource(sourceId)).toBe("normal(0, 1)"); | ||||
| 
 | ||||
|   unmount(); | ||||
|   expect(project.getSourceIds()).toStrictEqual([]); | ||||
|   expect(project.getSource(sourceId)).toBe(undefined); | ||||
| }); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user