feat: bundle assets with content (#2958)

* fix(media_folder_relative): use collection name in unpublished entry

* refactor: pass arguments as object to AssetProxy ctor

* feat: support media folders per collection

* feat: resolve media files path based on entry path

* fix: asset public path resolving

* refactor: introduce typescript for AssetProxy

* refactor: code cleanup

* refactor(asset-proxy): add tests,switch to typescript,extract arguments

* refactor: typescript for editorialWorkflow

* refactor: add typescript for media library actions

* refactor: fix type error on map set

* refactor: move locale selector into reducer

* refactor: add typescript for entries actions

* refactor: remove duplication between asset store and media lib

* feat: load assets from backend using API

* refactor(github): add typescript, cache media files

* fix: don't load media URL if already loaded

* feat: add media folder config to collection

* fix: load assets from API when not in UI state

* feat: load entry media files when opening media library

* fix: editorial workflow draft media files bug fixes

* test(unit): fix unit tests

* fix: editor control losing focus

* style: add eslint object-shorthand rule

* test(cypress): re-record mock data

* fix: fix non github backends, large media

* test: uncomment only in tests

* fix(backend-test): add missing displayURL property

* test(e2e): add media library tests

* test(e2e): enable visual testing

* test(e2e): add github backend media library tests

* test(e2e): add git-gateway large media tests

* chore: post rebase fixes

* test: fix tests

* test: fix tests

* test(cypress): fix tests

* docs: add media_folder docs

* test(e2e): add media library delete test

* test(e2e): try and fix image comparison on CI

* ci: reduce test machines from 9 to 8

* test: add reducers and selectors unit tests

* test(e2e): disable visual regression testing for now

* test: add getAsset unit tests

* refactor: use Asset class component instead of hooks

* build: don't inline source maps

* test: add more media path tests
This commit is contained in:
Erez Rokah
2019-12-18 18:16:02 +02:00
committed by Shawn Erquhart
parent 7e4d4c1cc4
commit 2b41d8a838
231 changed files with 37961 additions and 18373 deletions

View File

@ -11,10 +11,18 @@
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
require('dotenv').config();
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
const { setupGitHub, teardownGitHub, setupGitHubTest, teardownGitHubTest } = require('./github');
const {
setupGitGateway,
teardownGitGateway,
setupGitGatewayTest,
teardownGitGatewayTest,
} = require('./gitGateway');
const { copyBackendFiles } = require('../utils/config');
module.exports = async on => {
module.exports = async (on, config) => {
// `on` is used to hook into various events Cypress emits
on('task', {
async setupBackend({ backend, options }) {
@ -22,8 +30,13 @@ module.exports = async on => {
await copyBackendFiles(backend);
let result = null;
if (backend === 'github') {
result = await setupGitHub(options);
switch (backend) {
case 'github':
result = await setupGitHub(options);
break;
case 'git-gateway':
result = await setupGitGateway(options);
break;
}
return result;
@ -32,8 +45,13 @@ module.exports = async on => {
const { backend } = taskData;
console.log('Tearing down backend', backend);
if (backend === 'github') {
await teardownGitHub(taskData);
switch (backend) {
case 'github':
await teardownGitHub(taskData);
break;
case 'git-gateway':
await teardownGitGateway(taskData);
break;
}
console.log('Restoring defaults');
@ -45,8 +63,13 @@ module.exports = async on => {
const { backend, testName } = taskData;
console.log(`Setting up single test '${testName}' for backend`, backend);
if (backend === 'github') {
await setupGitHubTest(taskData);
switch (backend) {
case 'github':
await setupGitHubTest(taskData);
break;
case 'git-gateway':
await setupGitGatewayTest(taskData);
break;
}
return null;
@ -56,26 +79,42 @@ module.exports = async on => {
console.log(`Tearing down single test '${testName}' for backend`, backend);
if (backend === 'github') {
await teardownGitHubTest(taskData);
switch (backend) {
case 'github':
await teardownGitHubTest(taskData);
break;
case 'git-gateway':
await teardownGitGatewayTest(taskData);
break;
}
return null;
},
});
// to allows usage of a mock proxy
on('before:browser:launch', (browser = {}, args) => {
if (browser.name === 'chrome') {
// to allows usage of a mock proxy
args.push('--ignore-certificate-errors');
return args;
}
if (browser.name === 'electron') {
// to allows usage of a mock proxy
args['ignore-certificate-errors'] = true;
// https://github.com/cypress-io/cypress/issues/2102
if (browser.isHeaded) {
args['width'] = 1200;
args['height'] = 1200;
} else {
args['width'] = 1200;
args['height'] = process.platform === 'darwin' ? 1178 : 1200;
}
return args;
}
});
addMatchImageSnapshotPlugin(on, config);
};