Skip to content

Instantly share code, notes, and snippets.

View qunabu's full-sized avatar

Mateusz Wojczal qunabu

View GitHub Profile
{
"routes": [
{
"method": "GET",
"path": "/hi",
"handler": "Hello.hi",
"config": {
"policies": ["plugins::users-permissions.isAuthenticated"]
}
}
const Strapi = require("strapi");
const http = require("http");
let instance;
jest.setTimeout(30000);
/**
* Setups strapi for futher testing
*/
async function setupStrapi() {
/**
* Default data that factory use
*/
const defaultData = {
password: "1234Abc",
provider: "local",
confirmed: true,
};
/**
* Returns random username object for user creation
@qunabu
qunabu / .gitlab-ci.yml
Created April 19, 2020 18:59
Strapi gitlab testing
image: node:alpine
test:
stage: test
image: node:alpine
before_script:
- npm install
script:
- npm run test-ci
artifacts:
@qunabu
qunabu / app.test.js
Created April 19, 2020 18:35
Strapi simple unit test
const request = require("supertest");
// function from gist file
const { setupStrapi } = require("./helpers/strapi");
// We're setting timeout because sometimes bootstrap can take 5-7 seconds (big apps)
jest.setTimeout(10000);
let app; // this is instance of the the strapi
beforeAll(async () => {
@qunabu
qunabu / Heartbeat.md
Created April 19, 2020 18:14
Strapi Heartbeat endpoint

my-project/api/heartbeat/config/routes.json

{
  "routes": [{
    "method": "GET",
    "path": "/heartbeat",
    "handler": "heartbeat.index",
    "config": {}
 }]
@qunabu
qunabu / strapi.js
Last active May 5, 2020 13:03
Strapi test helper
const fs = require("fs");
const Strapi = require("strapi");
let instance;
async function setupStrapi(entryNamesToOpen) {
if (!instance) {
//delete test database if exists
const testDataBase = `${__dirname}/../../.tmp/test.db`;
if (fs.existsSync(testDataBase)) {
@qunabu
qunabu / database.json
Created April 19, 2020 17:59
Strapi test database enviroment
{
"defaultConnection": "default",
"connections": {
"default": {
"connector": "bookshelf",
"settings": {
"client": "sqlite",
"filename": ".tmp/test.db",
"host": "${process.env.DATABASE_HOST || '127.0.0.1'}",
"port": "${process.env.DATABASE_PORT || 27017}",
@qunabu
qunabu / getTranslationApp.js
Last active January 16, 2020 11:58
getTranslationApp.js
/** Runs the application */
// INPUT_FILE is a path to json file with input_vars
// TARGET_LANG is langauge code that input_vars should be translated to
// process.env.GKEY is Google API Key generated by `gcloud auth application-default print-access-token`
getJSON(INPUT_FILE) // get data from input file
.then(input_vars => convertToArray(input_vars)) // convert data from object to array
.then(input_arr =>processTranslation(input_arr, TARGET_LANG, process.env.GKEY)) // process the whole array
.then(transl_arr => convertToObject(transl_arr)) // convert data from array to object
@qunabu
qunabu / getJSON.js
Created January 14, 2020 21:15
getJSON
/**
* Get json from local machine
* @param {String} filename on local machine
* @returns {Promise} resolved object is JSON
*/
const getJSON = filename => {
return new Promise((resolve, reject) => {
fs.readFile(filename, (err, data) => {
if (err) {
reject(err);