• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

luttje / Key2Joy / 6749638574

03 Nov 2023 08:00PM UTC coverage: 44.916% (+1.1%) from 43.795%
6749638574

push

github

luttje
fix JS failing on callback/function parameter + add tests

802 of 2447 branches covered (0.0%)

Branch coverage included in aggregate %.

75 of 76 new or added lines in 4 files covered. (98.68%)

147 existing lines in 11 files now uncovered.

4048 of 8351 relevant lines covered (48.47%)

17051.46 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.06
/Support/Key2Joy.Tests/Core/Mapping/Actions/Scripting/JavascriptScriptActionTests.cs
1
using Jint;
2
using Key2Joy.Contracts.Plugins;
3
using Key2Joy.Mapping.Actions;
4
using Key2Joy.Mapping;
5
using Key2Joy.Mapping.Actions.Scripting;
6
using Microsoft.VisualStudio.TestTools.UnitTesting;
7
using Key2Joy.Contracts.Mapping.Actions;
8

9
namespace Key2Joy.Tests.Core.Mapping.Actions.Scripting;
10

11
public class JavascriptMockType : AbstractAction
12
{
13
    public JavascriptMockType() : base(string.Empty)
2✔
14
    { }
2✔
15

16
    public void MethodWithFunctionParameter(CallbackAction callback, params object[] args)
17
        => callback(args);
2✔
18
}
19

20
internal class TestJavascriptScriptAction : JavascriptAction
21
{
22
    public TestJavascriptScriptAction(string name) : base(name)
2✔
23
    {
24
    }
2✔
25

NEW
26
    public Engine GetEnvironment() => this.Environment;
×
27
}
28

29
[TestClass]
30
public class JavascriptScriptActionTests
31
{
32
    [TestMethod]
33
    public void Test_TypeExposedMethod_CanReceiveJavascriptFunction()
34
    {
35
        ActionsRepository.Buffer();
1✔
36
        ExposedEnumerationRepository.Buffer();
1✔
37

38
        var javascriptScriptAction = new TestJavascriptScriptAction("TestAction");
1✔
39
        var javascript = javascriptScriptAction.SetupEnvironment();
1✔
40

41
        var exposedMethod = new TypeExposedMethod("functionName", nameof(JavascriptMockType.MethodWithFunctionParameter), typeof(JavascriptMockType));
1✔
42

43
        var instance = new JavascriptMockType();
1✔
44
        exposedMethod.Prepare(instance);
1✔
45
        javascriptScriptAction.RegisterScriptingMethod(
1✔
46
                    exposedMethod,
1✔
47
                    instance);
1✔
48

49
        javascript.Execute("var funcResult; functionName(function(){ funcResult = 1337 });");
1✔
50

51
        var actual = javascript.GetValue("funcResult");
1✔
52
        Assert.AreEqual((double)1337, actual);
1✔
53
    }
1✔
54

55
    [TestMethod]
56
    public void Test_TypeExposedMethod_CanReceiveJavascriptFunctionWithParams()
57
    {
58
        ActionsRepository.Buffer();
1✔
59
        ExposedEnumerationRepository.Buffer();
1✔
60

61
        var javascriptScriptAction = new TestJavascriptScriptAction("TestAction");
1✔
62
        var javascript = javascriptScriptAction.SetupEnvironment();
1✔
63

64
        var exposedMethod = new TypeExposedMethod("functionName", nameof(JavascriptMockType.MethodWithFunctionParameter), typeof(JavascriptMockType));
1✔
65

66
        var instance = new JavascriptMockType();
1✔
67
        exposedMethod.Prepare(instance);
1✔
68
        javascriptScriptAction.RegisterScriptingMethod(
1✔
69
                    exposedMethod,
1✔
70
                    instance);
1✔
71

72
        javascript.Execute("var funcResult; functionName(function(a,b,c,d){ funcResult = `${a}${b}${c}${d}` }, 1, 3, 3, 7)");
1✔
73

74
        var actual = javascript.GetValue("funcResult");
1✔
75
        Assert.AreEqual("1337", actual);
1✔
76
    }
1✔
77
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc