Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: ignores mod-val inside elems #204

Open
incrop opened this issue Feb 9, 2016 · 0 comments
Open

deps: ignores mod-val inside elems #204

incrop opened this issue Feb 9, 2016 · 0 comments
Labels

Comments

@incrop
Copy link

incrop commented Feb 9, 2016

Trying to build deps for simplest bemdecl (using enb-bem-techs 2.2.1):

exports.blocks = [{"name": "a"}];

Scenario 1

a.deps.js

({
    mustDeps: [
        {mods: {m: 'v'}},
        {elem: 'e', mods: {m: 'v'}},
        {block: 'b', elems: {elem: 'e', mods: {m: 'v'}}}
    ]
});

deps-old tech

exports.deps = [
    {"block": "a", "mod": "m"},
    {"block": "a", "mod": "m", "val": "v"},
    {"block": "a", "elem": "e"},
    {"block": "a", "elem": "e", "mod": "m"},
    {"block": "a", "elem": "e", "mod": "m", "val": "v"},
    {"block": "b"},
    {"block": "b", "elem": "e"},
    {"block": "b", "elem": "e", "mod": "m"},
    {"block": "b", "elem": "e", "mod": "m", "val": "v"},
    {"block": "a"}
];

deps tech

exports.deps = [
    {"block": "a", "elem": "e"},
    {"block": "a", "elem": "e", "mod": "m"},
    {"block": "b"},
    {"block": "b", "elem": "e"},
    {"block": "b", "elem": "e", "mod": "m"},
    {"block": "a", "elem": "e", "mod": "m", "val": "v"},
    {"block": "b", "elem": "e", "mod": "m", "val": "v"},
    {"block": "a", "mod": "m"},
    {"block": "a", "mod": "m", "val": "v"},
    {"block": "a"}
];

All seems good.

Scenario 2

a.deps.js

({
    mustDeps: [
        {mod: 'm', val: 'v'},
        {elem: 'e', mod: 'm', val: 'v'},
        {block: 'b', mod: 'm', val: 'v',
         elems: {elem: 'e', mod: 'm', val: 'v'}} // watch for elemMod here
    ]
});

deps-old tech

exports.deps = [
    {"block": "a", "mod": "m", "val": "v"},
    {"block": "a", "elem": "e", "mod": "m", "val": "v"},
    {"block": "b", "mod": "m", "val": "v"},
    {"block": "b", "elem": "e", "mod": "m", "val": "v"}, // still here for deps-old
    {"block": "a"}
];

deps tech

exports.deps = [
    {"block": "a", "elem": "e"},
    {"block": "a", "elem": "e", "mod": "m"},
    {"block": "b"},
    {"block": "b", "elem": "e"}, // but not for deps
    {"block": "a", "elem": "e", "mod": "m", "val": "v"},
    {"block": "b", "mod": "m"},
    {"block": "b", "mod": "m", "val": "v"},
    {"block": "a", "mod": "m"},
    {"block": "a", "mod": "m", "val": "v"},
    {"block": "a"}
];

(Extra mod-without-val entities are expected for deps tech because of implicit mustDeps *_mod_val*_mod*)

Issue

deps tech treats {elem, mod, val} as just {elem} inside elems. This is clearly a bug, since all other forms expand correctly.

By the way, {block: 'b', elem: {elem: 'e', mod: 'm', val: 'v'}} is not handled by both techs. Is it right behavior?

@incrop incrop added the bug label Feb 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant