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

scriptype / writ-cms / 20180098425

12 Dec 2025 09:15PM UTC coverage: 33.638% (+0.8%) from 32.837%
20180098425

push

github

scriptype
Separate AssetsDirectory as a model too

Same logic with pagesDirectory. And add basic checks that verify assets
are recognized all well.

437 of 3419 branches covered (12.78%)

Branch coverage included in aggregate %.

18 of 19 new or added lines in 2 files covered. (94.74%)

1443 of 2170 relevant lines covered (66.5%)

1056.3 hits per line

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

88.89
/src/compiler/contentModel/models/assetsDirectory.js
1
const ContentModelEntryNode = require('../../../lib/ContentModelEntryNode')
8✔
2
const matcha = require('../../../lib/matcha')
8✔
3

4
const models = {
8✔
5
  Asset: require('./asset')
6
}
7

8
const defaultSettings = {
8✔
9
  assetsDirectory: 'assets'
10
}
11
class AssetsDirectory extends ContentModelEntryNode {
12
  static serialize(assetsDirectory) {
NEW
13
    return {
×
14
      assets: assetsDirectory.subtree.assets.map(models.Asset.serialize)
15
    }
16
  }
17

18
  constructor(fsNode, context, settings) {
19
    super(fsNode, context, settings)
32✔
20
    this.matchers = this.getSubtreeMatchers()
32✔
21
    this.subtree = this.parseSubtree()
32✔
22
    this.afterEffects()
32✔
23
  }
24

25
  getSubtreeMatchers() {
26
    return {
32✔
27
      asset: matcha.true()
28
    }
29
  }
30

31
  parseSubtree() {
32
    const tree = {
32✔
33
      assets: []
34
    }
35

36
    this.fsNode.children.forEach(childNode => {
32✔
37
      if (this.matchers.asset(childNode)) {
64!
38
        return tree.assets.push(
64✔
39
          new models.Asset(childNode, this.context, {
40
            assetsDirectory: this.settings.assetsDirectory
41
          })
42
        )
43
      }
44
    })
45
    return tree
32✔
46
  }
47
}
48

49
module.exports = AssetsDirectory
8✔
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