diff --git a/0000 b/0000 new file mode 100644 index 0000000..263bb3d --- /dev/null +++ b/0000 @@ -0,0 +1,7 @@ +test-cors + +x /загрузка|load.js +/загрузка|load.череда + +/пуск|run.js +/пуск|run.череда diff --git a/README.md b/README.md index f3ca011..2e4b2e0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # test-cors -Проверить CORS \ No newline at end of file +Проверить CORS diff --git a/загрузка|load.js b/загрузка|load.js new file mode 100644 index 0000000..805042d --- /dev/null +++ b/загрузка|load.js @@ -0,0 +1,45 @@ + +const ИМЯ = "test-cors"; + + +// // // // + + +ЗапуститьТест = function(мир) +{ + var модуль = мир.модули.модульПоИмени(ИМЯ); + модуль.исполнитьФайл("/пуск|run.js"); + модуль.исполнитьЧереду(мир, "/пуск|run.череда"); + мир.уведомить("пуск теста"); +}; + + +// // // // + + +ЗагрузитьБиблиотекиТеста = function(мир) +{ + var указатели = [ + "https://bitbucket.org/gitjs/isomorphic-git/raw/1.7.2/0000", + ]; + + var сообщение = "Загрузка библиотек | Loading libraries"; + console.debug(сообщение, указатели); + + var html = ""; + for (var номер in указатели) + { + var указатель = указатели[номер]; + html += `
  • ${указатель}
  • `; + } + document.body.innerHTML += `

    ${сообщение}

    `; + + мир.модули.использовали.подписатьРаз(function() { + мир.уведомить("ручной пуск"); + мир.уведомить("загрузили библиотеки теста"); + }); + + мир.модули.использовать(указатели); +}; + + diff --git a/загрузка|load.череда b/загрузка|load.череда new file mode 100644 index 0000000..471fdae --- /dev/null +++ b/загрузка|load.череда @@ -0,0 +1,4 @@ +пуск + загрузить библиотеки теста +загрузили библиотеки теста + запустить тест diff --git a/пуск|run.js b/пуск|run.js new file mode 100644 index 0000000..0c6478a --- /dev/null +++ b/пуск|run.js @@ -0,0 +1,397 @@ + +const ИМЯ = "test-cors"; + +// // // // + + +Закомитать = function(мир) +{ + (async() => { + + console.debug("01") + + var дата = new Date(); + await мир.fs.promises.writeFile(мир.директория + "/abc", дата.toString(), "utf8"); + await git.add({ + fs: мир.fs, + dir: мир.директория, + filepath: "abc" + }); + var sha = await git.commit({ + fs: мир.fs, + dir: мир.директория, + message: мир.сообщение, + author: мир.автор, + }) + + console.debug("commit sha:", sha); + + await git.push({ + fs: мир.fs, + http: мир.гитHTTP, + dir: мир.директория, + remote: мир.источник, + ref: мир.ветка, + onAuth: function(url) { + var auth = { + "username": мир.пользователь, + "password": мир.пароль, + }; + var json = JSON.stringify(auth); + console.debug(`Auth url: '${url}' auth: '${json}'`); + return auth; + }, + }); + + console.debug("закомитали") + + })(); +}; + + +// // // // + + +УведомитьОбОшибкеПолученияСпискаФайлов = function(мир) +{ + var сообщение = `ОШИБКА Не удалось получить список файлов | ERROR Could not get a list of files ${мир.ошибка}`; + document.body.innerHTML += `

    ${сообщение}

    `; + console.error(сообщение); +}; + + +// // // // + + +ВывестиСписокФайлов = function(мир) +{ + console.debug("файлы", мир.файлы); +}; + + +// // // // + + +ПолучитьСписокФайлов = function(мир) +{ + (async() => { + + try + { + мир.файлы = await мир.fs.promises.readdir(мир.директория); + мир.уведомить("получили список файлов"); + } + catch (ошибка) + { + мир.ошибка = ошибка; + мир.уведомить("не получили список файлов"); + } + + })(); +}; + + +// // // // + + +УведомитьОПерезагрузке = function(мир) +{ + var сообщение = `ВНИМАНИЕ Происходит очистка локальной копии Гита с последующей перезагрузкой страницы | WARNING There's a local Git copy cleanup going on with a subsequent page reload ${мир.ошибка}`; + document.body.innerHTML += `

    ${сообщение}

    `; + console.error(сообщение); +}; + + +// // // // + + +УведомитьОЗавершенииОбновления = function(мир) +{ + console.debug("завершили обновление"); +}; + + +// // // // + + +Перезагрузить = function(мир) +{ + setTimeout( + function() { + window.location.reload(false); + }, + 4000 + ); +}; + + +// // // // + + +ОчиститьФайловуюСистему = function(мир) +{ + // Очищаем IndexedDB. + мир.fs = new LightningFS(мир.имяФС, { wipe: true }); +}; + + +// // // // + + +ОбновитьХранилище = function(мир) +{ + (async() => { + + try + { + await git.pull({ + fs: мир.fs, + http: мир.гитHTTP, + dir: мир.директория, + url: мир.хранилище, + depth: 1, + username: мир.пользователь, + password: мир.пароль, + author: мир.автор, + }); + + мир.уведомить("обновили хранилище"); + } + catch (ошибка) + { + мир.ошибка = ошибка; + мир.уведомить("не обновили хранилище"); + } + + })(); +}; + + +// // // // + + +УведомитьОЗавершенииКлонирования = function(мир) +{ + console.debug("завершили клонирование"); +}; + + +// // // // + + +СклонироватьХранилище = function(мир) +{ + (async() => { + + await git.clone({ + fs: мир.fs, + http: мир.гитHTTP, + dir: мир.директория, + url: мир.хранилище, + depth: 1, + username: мир.пользователь, + password: мир.пароль, + }); + + мир.уведомить("склонировали хранилище"); + + })(); +}; + + +// // // // + + +УведомитьОбОшибкеПодготовкиДиректории = function(мир) +{ + var сообщение = `ОШИБКА Не удалось подготовить директорию для хранилища Гит | ERROR Could not prepare a directory for Git repository ${мир.ошибка}`; + document.body.innerHTML += `

    ${сообщение}

    `; + console.error(сообщение); +}; + + +// // // // + + +ПодготовитьДиректорию = function(мир) +{ + (async() => { + + try + { + await мир.fs.promises.mkdir(мир.директория); + мир.уведомить("подготовили директорию"); + } + catch (ошибка) + { + мир.ошибка = ошибка; + мир.уведомить("не подготовили директорию"); + } + + })(); +}; + + +// // // // + + +ПроверитьНаличиеДиректории = function(мир) +{ + мир.fs = new LightningFS(мир.имяФС); + + (async() => { + + try + { + await мир.fs.promises.readdir(мир.директория); + мир.уведомить("директория присутствует"); + } + catch (ошибка) + { + мир.ошибка = ошибка; + мир.уведомить("директория отсутствует"); + } + + })(); +}; + + +// // // // + + +ЗадатьНастройки = function(мир) +{ + мир.имяФС = "fs"; + мир.пользователь = "root"; + мир.пароль = "root"; + мир.автор = { + "name": "Михаил Капелько", + "email": "kornerr@gmail.com", + }; + мир.ветка = "master"; + мир.директория = "/" + мир.ветка; + мир.источник = "origin"; + мир.сообщение = "Изменения от isomorphic-git"; + + мир.хранилище = "https://git.opengamestudio.org/kornerr/isomorphic-git-module-test"; + мир.хранилище = "https://git.opengamestudio.org/kornerr/test-cors"; +}; + + +// // // // + + +УведомитьОПускеТеста = function(мир) +{ + console.debug("пуск теста"); +}; + + +// // // // + + +/* + + +// // // // + + +СоздатьВетку = function(мир) +{ + (async() => { + + console.debug("01"); + + await git.checkout({ + fs: мир.fs, + dir: мир.директория, + ref: мир.ветка, + }); + + console.debug("02"); + + console.log("создали ветку"); + мир.уведомить("создали ветку"); + + })(); +}; + + +// // // // + + +СоздатьВеткуДистанционно = function(мир) +{ + (async() => { + + console.debug("01") + + await git.push({ + fs: мир.fs, + http: мир.гитHTTP, + dir: мир.директория, + remote: мир.источник, + ref: мир.ветка, + onAuth: function() { + return { + "username": мир.пользователь, + "password": мир.пароль, + }; + }, + }); + + console.debug("02") + console.log("создали ветку дистанционно"); + мир.уведомить("создали ветку дистанционно"); + + })(); +}; + + +// // // // + + +СоздатьВеткуЛокально = function(мир) +{ + (async() => { + + await git.branch({ + fs: мир.fs, + dir: мир.директория, + ref: мир.ветка, + checkout: true, + }); + + console.log("создали ветку локально"); + мир.уведомить("создали ветку локально"); + + })(); +}; + + +// // // // + + +ПроверитьНаличиеВетки = function(мир) +{ + (async() => { + + var ветки = await git.listBranches({ + fs: мир.fs, + dir: мир.директория, + }); + + if (ветки.includes(мир.ветка)) + { + мир.уведомить("ветка присутствует"); + } + else + { + мир.уведомить("ветка отсутствует"); + } + + })(); +}; + +*/ + diff --git a/пуск|run.череда b/пуск|run.череда new file mode 100644 index 0000000..56ed717 --- /dev/null +++ b/пуск|run.череда @@ -0,0 +1,31 @@ +пуск теста + уведомить о пуске теста + задать настройки + + проверить наличие директории +директория отсутствует + подготовить директорию +не подготовили директорию + уведомить об ошибке подготовки директории + +подготовили директорию + склонировать хранилище +склонировали хранилище + уведомить о завершении клонирования + обновить хранилище +директория присутствует + обновить хранилище + +не обновили хранилище + очистить файловую систему + уведомить о перезагрузке + перезагрузить + +обновили хранилище + уведомить о завершении обновления + получить список файлов +не получили список файлов + уведомить об ошибке получения списка файлов +получили список файлов + вывести список файлов + закомитать