const merge = require('../lib/pages-json').default describe('shared:merge', () => { it('merge globalStyle', () => { const a = { globalStyle: { navigationBarTitleText: 'uni-app', 'app-plus': { bounce: 'none', titleNView: { background: '#ffffff', buttons: [{ text: '分享' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } } const b = { globalStyle: { navigationBarTitleText: 'hello', navigationBarBackgroundColor: '#007AFF', 'app-plus': { titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { background: '#00FF00' } } } } } const result = { globalStyle: { navigationBarTitleText: 'hello', navigationBarBackgroundColor: '#007AFF', 'app-plus': { bounce: 'none', titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } } expect(merge([a, b])).toEqual(result) }) it('merge pages', () => { const a = { pages: [{ path: 'pages/index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { bounce: 'none', titleNView: { background: '#ffffff', buttons: [{ text: '分享' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } }] } const b = { pages: [{ path: 'pages/index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { background: '#00FF00' } } } } }, { path: 'pages/login/login' }] } const result = { pages: [{ path: 'pages/index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { bounce: 'none', titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } }, { path: 'pages/login/login' }] } expect(merge([a, b])).toEqual(result) }) it('merge subpackages', () => { const a = { subPackages: [{ root: 'pages/demo', pages: [{ path: 'index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { bounce: 'none', titleNView: { background: '#ffffff', buttons: [{ text: '分享' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } }] }] } const b = { subPackages: [{ root: 'pages/demo', pages: [{ path: 'index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { background: '#00FF00' } } } } }, { path: 'login/login' }] }, { root: 'pages/test', pages: [{ path: 'test/test' }] }] } const result = { subPackages: [{ root: 'pages/demo', pages: [{ path: 'index/index', style: { navigationBarTitleText: 'uni-app', 'app-plus': { bounce: 'none', titleNView: { background: '#000000', buttons: [{ text: '收藏' }], backButton: { color: '#ffffff', background: '#00FF00' } } } } }, { path: 'login/login' }] }, { root: 'pages/test', pages: [{ path: 'test/test' }] }] } expect(merge([a, b])).toEqual(result) }) it('merge multi', () => { const a = { globalStyle: { backgroundColorTop: '#ffffff', navigationBarTitleText: 'uni-app' } } const b = { globalStyle: { navigationBarTitleText: 'hello1', navigationBarBackgroundColor: '#000000', backgroundColor: '#ffffff' } } const c = { globalStyle: { navigationBarTitleText: 'hello2', navigationBarBackgroundColor: '#007AFF', backgroundTextStyle: 'light' } } const result = { globalStyle: { backgroundColorTop: '#ffffff', navigationBarTitleText: 'hello2', navigationBarBackgroundColor: '#007AFF', backgroundTextStyle: 'light', backgroundColor: '#ffffff' } } expect(merge([a, b, c])).toEqual(result) }) })