RavenApiUsageTests.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Esprima.Ast;
  2. using Jint.Constraints;
  3. using Jint.Native.Function;
  4. namespace Jint.Tests.PublicInterface;
  5. /// <summary>
  6. /// Tests related to functionality that RavenDB needs exposed.
  7. /// </summary>
  8. public class RavenApiUsageTests
  9. {
  10. [Fact]
  11. public void CanBuildCustomScriptFunctionInstance()
  12. {
  13. var engine = new Engine();
  14. var properties = new List<Node>
  15. {
  16. new Property(PropertyKind.Data, new Identifier("field"), false,
  17. new StaticMemberExpression(new Identifier("self"), new Identifier("field"), optional: false), false, false)
  18. };
  19. var functionExp = new FunctionExpression(
  20. new Identifier("functionId"),
  21. NodeList.Create<Node>(new List<Expression> { new Identifier("self") }),
  22. new BlockStatement(NodeList.Create(new List<Statement> { new ReturnStatement(new ObjectExpression(NodeList.Create(properties))) })),
  23. generator: false,
  24. strict: false,
  25. async: false);
  26. var functionObject = new ScriptFunctionInstance(
  27. engine,
  28. functionExp,
  29. engine.CreateNewDeclarativeEnvironment(),
  30. strict: false
  31. );
  32. Assert.NotNull(functionObject);
  33. }
  34. [Fact]
  35. public void CanChangeMaxStatementValue()
  36. {
  37. var engine = new Engine(options => options.MaxStatements(123));
  38. var constraint = engine.FindConstraint<MaxStatementsConstraint>();
  39. Assert.NotNull(constraint);
  40. var oldMaxStatements = constraint.MaxStatements;
  41. constraint.MaxStatements = 321;
  42. Assert.Equal(123, oldMaxStatements);
  43. Assert.Equal(321, constraint.MaxStatements);
  44. }
  45. }