Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7686912
theme_data.spec.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
theme_data.spec.js
View Options
import
{
getLayersArray
,
topoSort
}
from
'src/services/theme_data/theme_data.service.js'
describe
(
'Theme Data utility functions'
,
()
=>
{
describe
(
'getLayersArray'
,
()
=>
{
const
fixture
=
{
layer1
:
null
,
layer2
:
'layer1'
,
layer3a
:
'layer2'
,
layer3b
:
'layer2'
}
it
(
'should expand layers properly (3b)'
,
()
=>
{
const
out
=
getLayersArray
(
'layer3b'
,
fixture
)
expect
(
out
).
to
.
eql
([
'layer1'
,
'layer2'
,
'layer3b'
])
})
it
(
'should expand layers properly (3a)'
,
()
=>
{
const
out
=
getLayersArray
(
'layer3a'
,
fixture
)
expect
(
out
).
to
.
eql
([
'layer1'
,
'layer2'
,
'layer3a'
])
})
it
(
'should expand layers properly (2)'
,
()
=>
{
const
out
=
getLayersArray
(
'layer2'
,
fixture
)
expect
(
out
).
to
.
eql
([
'layer1'
,
'layer2'
])
})
it
(
'should expand layers properly (1)'
,
()
=>
{
const
out
=
getLayersArray
(
'layer1'
,
fixture
)
expect
(
out
).
to
.
eql
([
'layer1'
])
})
})
describe
(
'topoSort'
,
()
=>
{
const
fixture1
=
{
layerA
:
[],
layer1A
:
[
'layerA'
],
layer2A
:
[
'layer1A'
],
layerB
:
[],
layer1B
:
[
'layerB'
],
layer2B
:
[
'layer1B'
],
layer3AB
:
[
'layer2B'
,
'layer2A'
]
}
// Same thing but messed up order
const
fixture2
=
{
layer1A
:
[
'layerA'
],
layer1B
:
[
'layerB'
],
layer2A
:
[
'layer1A'
],
layerB
:
[],
layer3AB
:
[
'layer2B'
,
'layer2A'
],
layer2B
:
[
'layer1B'
],
layerA
:
[]
}
it
(
'should make a topologically sorted array'
,
()
=>
{
const
out
=
topoSort
(
fixture1
,
(
node
,
inheritance
)
=>
inheritance
[
node
])
// This basically checks all ordering that matters
expect
(
out
.
indexOf
(
'layerA'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer1A'
))
expect
(
out
.
indexOf
(
'layer1A'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer2A'
))
expect
(
out
.
indexOf
(
'layerB'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer1B'
))
expect
(
out
.
indexOf
(
'layer1B'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer2B'
))
expect
(
out
.
indexOf
(
'layer2A'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer3AB'
))
expect
(
out
.
indexOf
(
'layer2B'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer3AB'
))
})
it
(
'order in object shouldn\'t matter'
,
()
=>
{
const
out
=
topoSort
(
fixture2
,
(
node
,
inheritance
)
=>
inheritance
[
node
])
// This basically checks all ordering that matters
expect
(
out
.
indexOf
(
'layerA'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer1A'
))
expect
(
out
.
indexOf
(
'layer1A'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer2A'
))
expect
(
out
.
indexOf
(
'layerB'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer1B'
))
expect
(
out
.
indexOf
(
'layer1B'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer2B'
))
expect
(
out
.
indexOf
(
'layer2A'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer3AB'
))
expect
(
out
.
indexOf
(
'layer2B'
)).
to
.
be
.
below
(
out
.
indexOf
(
'layer3AB'
))
})
it
(
'dependentless nodes should be first'
,
()
=>
{
const
out
=
topoSort
(
fixture2
,
(
node
,
inheritance
)
=>
inheritance
[
node
])
// This basically checks all ordering that matters
expect
(
out
.
indexOf
(
'layerA'
)).
to
.
eql
(
0
)
expect
(
out
.
indexOf
(
'layerB'
)).
to
.
eql
(
1
)
})
it
(
'ignores cyclic dependencies'
,
()
=>
{
const
out
=
topoSort
({
a
:
'b'
,
b
:
'a'
,
c
:
'a'
},
(
node
,
inheritance
)
=>
[
inheritance
[
node
]])
expect
(
out
.
indexOf
(
'a'
)).
to
.
be
.
below
(
out
.
indexOf
(
'c'
))
})
})
})
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Sep 3, 5:36 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
435886
Default Alt Text
theme_data.spec.js (3 KB)
Attached To
Mode
rPUFE pleroma-fe-upstream
Attached
Detach File
Event Timeline
Log In to Comment