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

rackai / domql / #312

22 Jul 2020 08:43AM UTC coverage: 67.331% (+56.7%) from 10.602%
#312

push

nikoloza
added few tests

130 of 227 branches covered (57.27%)

Branch coverage included in aggregate %.

208 of 275 relevant lines covered (75.64%)

11.03 hits per line

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

61.96
/src/element/createNode.js
1
'use strict'
2

3
import create from './create'
4
import cacheNode from './cache'
5

6
import { registry } from './params'
7
import { exec, isObject } from '../utils'
8
import * as on from '../event/on'
9

10
var createNode = (element) => {
7✔
11
  // create and assign a node
12
  var { node } = element
9✔
13
  var isNewNode
14
  if (!node) {
9✔
15
    isNewNode = true
8✔
16
    node = cacheNode(element)
8✔
17
    element.node = node
8✔
18
    node.ref = element
8✔
19
  }
20

21
  // run define iteration to set params
22
  if (element.define && isObject(element.define)) {
9!
23
    for (const param in element.define) {
×
24
      if (!element[param]) element[param] = element.define[param](void 0, element)
×
25
    }
26
  }
27

28
  // Apply element parameters
29
  if (element.tag !== 'string' || element.tag !== 'fragment') {
9!
30
    // apply define
31
    if (isObject(element.define)) {
9!
32
      var { define } = element
×
33
      for (const param in define) {
×
34
        var execParam = exec(element[param], element)
×
35
        element.data[param] = execParam
×
36
        element[param] = define[param](execParam, element)
×
37
      }
38
    }
39

40
    // apply transform
41
    if (isObject(element.transform)) {
9!
42
      var { transform } = element
×
43
      for (const param in transform) {
×
44
        execParam = exec(element[param], element)
×
45
        if (element.data[param]) {
×
46
          execParam = exec(element.data[param], element)
×
47
        } else {
48
          execParam = exec(element[param], element)
×
49
          element.data[param] = execParam
×
50
        }
51
        element[param] = transform[param](execParam, element)
×
52
      }
53
    }
54

55
    // apply events
56
    if (isNewNode && isObject(element.on)) {
9✔
57
      for (const param in element.on) {
1✔
58
        if (param === 'init' || param === 'render') continue
11✔
59
        var appliedFunction = element.on[param]
9✔
60
        var registeredFunction = on[param]
9✔
61
        if (typeof appliedFunction === 'function' &&
9!
62
        typeof registeredFunction === 'function') {
63
          registeredFunction(appliedFunction, element)
9✔
64
        }
65

66
        // var definedFunction = element.define && element.define[param]
67
        // else console.error('Not such function', appliedFunction, registeredFunction)
68
        // if (typeof appliedFunction === 'function' && typeof definedFunction === 'function') definedFunction(appliedFunction, element)
69
      }
70
    }
71

72
    for (const param in element) {
9✔
73
      if ((param === 'set' || param === 'update') || !element[param] === undefined) return
59✔
74

75
      execParam = exec(element[param], element)
58✔
76

77
      var hasDefine = element.define && element.define[param]
58!
78
      var registeredParam = registry[param]
58✔
79

80
      if (registeredParam) {
58!
81
        // Check if it's registered param
82
        if (typeof registeredParam === 'function') {
58✔
83
          registeredParam(execParam, element, node)
12✔
84
        }
85

86
        if (param === 'style') registry['class'](element['class'], element, node)
58!
87
      } else if (element[param] && !hasDefine) {
×
88
        // Create element
89
        create(execParam, element, param)
×
90
        // if (isNewNode) create(execParam, element, param)
91
        // else createNode(execParam)
92
      }
93
    }
94
  }
95

96
  // node.dataset.key = key
97
  return element
8✔
98
}
99

100
export default createNode
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

© 2026 Coveralls, Inc