tutorial injecting user values
This commit is contained in:
		
							parent
							
								
									5bc4395ff6
								
							
						
					
					
						commit
						22e45d0e7b
					
				|  | @ -0,0 +1,39 @@ | |||
| @@warning("-44") | ||||
| module InternalExpressionValue = ReducerInterface_InternalExpressionValue | ||||
| module Project = ForTS_ReducerProject | ||||
| module Bindings = Reducer_Bindings | ||||
| 
 | ||||
| open Jest | ||||
| open Expect | ||||
| open Expect.Operators | ||||
| 
 | ||||
| describe("ReducerProject Tutorial", () => { | ||||
|   /* Let's build a project that depends on values from the UI */ | ||||
|   let project = Project.createProject() | ||||
|   Project.setSource(project, "main", "x+y+z") | ||||
|   /* x, y and z is not defined in the project but they has to come from the user */ | ||||
|   test("Injecting user values", () => { | ||||
|     /* User has input the values */ | ||||
|     let x = 1 | ||||
|     let y = 2 | ||||
|     let z = 3 | ||||
|     /* Then we construct a source code to define those values */ | ||||
|     let userCode = ` | ||||
|       x = ${x->Js.Int.toString} | ||||
|       y = ${y->Js.Int.toString} | ||||
|       z = ${z->Js.Int.toString} | ||||
|     ` | ||||
|     /* We inject the user code into the project */ | ||||
|     Project.setSource(project, "userCode", userCode) | ||||
|     /* "main" is depending on the user code */ | ||||
|     Project.setContinues(project, "main", ["userCode"]) | ||||
|     /* We can now run the project */ | ||||
|     Project.runAll(project) | ||||
|     let result = Project.getResult(project, "main") | ||||
|     result->InternalExpressionValue.toStringOptionResult->expect == "Ok(6)" | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| /* Note that this is not final version of the project */ | ||||
| /* In the future, for safety, we will provide a way to inject values instead of a source code */ | ||||
| /* But time is limited for now... */ | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user