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> <div>{{ props.row.name }}</div>
</span> </span>
<span v-else-if="props.column.field === 'dependencies'"> <span v-else-if="props.column.field === 'dependencies'">
<span <span v-if="Object.keys(props.row.dependencies.all).length === 0">
v-if="props.row.dependencies.requirements.length === 0" <i v-t="'admin.noDependencies'" />
><i v-t="'admin.noDependencies'" /></span> </span>
<div v-else> <div v-else>
<span <span
v-for="(semver, dep) in props.row.dependencies.requirements" v-for="(constraint, name) in props.row.dependencies.all"
:key="dep" :key="name"
class="label" 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> <br>
</span> </span>
</div> </div>

View File

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

View File

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

View File

@ -52,7 +52,7 @@ test('enable plugin', async () => {
name: 'a', dependencies: { all: {}, unsatisfied: {} }, enabled: false, 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 Vue.prototype.$http.post