Refactor plugin system (part 10)

This commit is contained in:
Pig Fang 2019-08-15 11:57:55 +08:00
parent f182f799f6
commit eb836357b8
4 changed files with 19 additions and 19 deletions

View File

@ -13,17 +13,17 @@
<div>{{ props.row.name }}</div>
</span>
<span v-else-if="props.column.field === 'dependencies'">
<span
v-if="props.row.dependencies.requirements.length === 0"
><i v-t="'admin.noDependencies'" /></span>
<span v-if="Object.keys(props.row.dependencies.all).length === 0">
<i v-t="'admin.noDependencies'" />
</span>
<div v-else>
<span
v-for="(semver, dep) in props.row.dependencies.requirements"
:key="dep"
v-for="(constraint, name) in props.row.dependencies.all"
:key="name"
class="label"
:class="`bg-${dep in props.row.dependencies.unsatisfiedRequirements ? 'red' : 'green'}`"
:class="`bg-${name in props.row.dependencies.unsatisfied ? 'red' : 'green'}`"
>
{{ dep }}: {{ semver }}
{{ name }}: {{ constraint }}
<br>
</span>
</div>

View File

@ -53,9 +53,9 @@
</div>
</span>
<span v-else-if="props.column.field === 'dependencies'">
<span
v-if="Object.keys(props.row.dependencies.all).length === 0"
><i v-t="'admin.noDependencies'" /></span>
<span v-if="Object.keys(props.row.dependencies.all).length === 0">
<i v-t="'admin.noDependencies'" />
</span>
<div v-else>
<span
v-for="(constraint, name) in props.row.dependencies.all"

View File

@ -5,11 +5,11 @@ import { flushPromises } from '../../utils'
test('render dependencies', async () => {
Vue.prototype.$http.get.mockResolvedValue([
{ name: 'a', dependencies: { requirements: [] } },
{ name: 'a', dependencies: { all: {}, unsatisfied: {} } },
{
name: 'b',
dependencies: {
requirements: { a: '^1.0.0', c: '^2.0.0' }, unsatisfiedRequirements: { c: {} },
all: { a: '^1.0.0', c: '^2.0.0' }, unsatisfied: { c: {} },
},
},
])
@ -24,16 +24,16 @@ test('render dependencies', async () => {
test('render operation buttons', async () => {
Vue.prototype.$http.get.mockResolvedValue([
{
name: 'a', dependencies: { requirements: [] }, installed: true, update_available: true,
name: 'a', dependencies: { all: {}, unsatisfied: {} }, installed: true, update_available: true,
},
{
name: 'b', dependencies: { requirements: [] }, installed: true, enabled: true,
name: 'b', dependencies: { all: {}, unsatisfied: {} }, installed: true, enabled: true,
},
{
name: 'c', dependencies: { requirements: [] }, installed: true,
name: 'c', dependencies: { all: {}, unsatisfied: {} }, installed: true,
},
{
name: 'd', dependencies: { requirements: [] }, installed: false,
name: 'd', dependencies: { all: {}, unsatisfied: {} }, installed: false,
},
])
const wrapper = mount(Market)
@ -49,7 +49,7 @@ test('render operation buttons', async () => {
test('install plugin', async () => {
Vue.prototype.$http.get.mockResolvedValue([
{
name: 'd', dependencies: { requirements: [] }, installed: false,
name: 'd', dependencies: { all: {}, unsatisfied: {} }, installed: false,
},
])
Vue.prototype.$http.post
@ -75,7 +75,7 @@ test('update plugin', async () => {
{
name: 'a',
version: '2.0.0',
dependencies: { requirements: [] },
dependencies: { all: {}, unsatisfied: {} },
installed: '1.0.0',
update_available: true,
},

View File

@ -52,7 +52,7 @@ test('enable plugin', async () => {
name: 'a', dependencies: { all: {}, unsatisfied: {} }, enabled: false,
},
{
name: 'b', dependencies: { all: {}, unsatisfied: {} }, enabled: false,
name: 'b', dependencies: { all: { c: '' }, unsatisfied: {} }, enabled: false,
},
])
Vue.prototype.$http.post