Remove vagrant and add testing docker
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -16,3 +16,8 @@ web/admin/dist/*.map
|
||||
web/modules/dist/*.map
|
||||
docker/development/db_data
|
||||
docker/prod/db_data
|
||||
docker/testing/db_data
|
||||
test/frontend/cypress/videos/*
|
||||
test/frontend/cypress/screenshots/*
|
||||
test/frontend/node_modules/*
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ COPY --chown=nobody ./index.php /var/www/html/index.php
|
||||
COPY --chown=nobody ./docker/prod/config/config.php /var/www/html/app/config.php
|
||||
|
||||
# Expose the port nginx is reachable on
|
||||
EXPOSE 8080
|
||||
EXPOSE 80
|
||||
|
||||
# Let supervisord start nginx & php-fpm
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
|
||||
# Configure a healthcheck to validate that everything is up&running
|
||||
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8080/fpm-ping
|
||||
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8082/fpm-ping
|
||||
|
||||
50
Dockerfile-testing
Normal file
50
Dockerfile-testing
Normal file
@@ -0,0 +1,50 @@
|
||||
FROM alpine:3.11
|
||||
LABEL Maintainer="Thilina, Pituwala <thilina@icehrm.com>" \
|
||||
Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux."
|
||||
|
||||
# Install packages
|
||||
RUN apk --no-cache add php7 php7-fpm php7-opcache php7-mysqli php7-json php7-openssl php7-curl \
|
||||
php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \
|
||||
php7-mbstring php7-gd nginx supervisor curl
|
||||
|
||||
# Configure nginx
|
||||
COPY docker/testing/config/nginx.conf /etc/nginx/nginx.conf
|
||||
# Remove default server definition
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
# Configure PHP-FPM
|
||||
COPY docker/testing/config/fpm-pool.conf /etc/php7/php-fpm.d/www.conf
|
||||
COPY docker/testing/config/php.ini /etc/php7/conf.d/custom.ini
|
||||
|
||||
# Configure supervisord
|
||||
COPY docker/testing/config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
|
||||
# Setup document root
|
||||
RUN mkdir -p /var/www/html
|
||||
|
||||
# Make sure files/folders needed by the processes are accessable when they run under the nobody user
|
||||
RUN chown -R nobody.nobody /var/www/html && \
|
||||
chown -R nobody.nobody /run && \
|
||||
chown -R nobody.nobody /var/lib/nginx && \
|
||||
chown -R nobody.nobody /var/log/nginx
|
||||
|
||||
# Switch to use a non-root user from here on
|
||||
USER nobody
|
||||
|
||||
# Add application
|
||||
WORKDIR /var/www/html
|
||||
COPY --chown=nobody ./app /var/www/html/app/
|
||||
COPY --chown=nobody ./core /var/www/html/core/
|
||||
COPY --chown=nobody ./web /var/www/html/web/
|
||||
COPY --chown=nobody ./index.php /var/www/html/index.php
|
||||
COPY --chown=nobody ./docker/testing/config/config.php /var/www/html/app/config.php
|
||||
COPY --chown=nobody ./docker/testing/config/reset-db.php /var/www/html/app/reset-db.php
|
||||
|
||||
# Expose the port nginx is reachable on
|
||||
EXPOSE 8090
|
||||
|
||||
# Let supervisord start nginx & php-fpm
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
|
||||
# Configure a healthcheck to validate that everything is up&running
|
||||
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8091/fpm-ping
|
||||
26
Vagrantfile
vendored
26
Vagrantfile
vendored
@@ -1,26 +0,0 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "thilinah/jessie64_isotope"
|
||||
config.vm.box_version = "0.0.1"
|
||||
config.vm.network "private_network", ip: "192.168.40.40"
|
||||
config.vm.synced_folder ".", "/vagrant", type: "nfs"
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = "2"
|
||||
vb.name = "icehrm.open"
|
||||
end
|
||||
|
||||
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50
|
||||
sudo apt-get update
|
||||
chmod ugo+x /vagrant/deployment/vagrant/runonce.sh
|
||||
sh /vagrant/deployment/vagrant/runonce.sh
|
||||
SHELL
|
||||
|
||||
config.vm.hostname = "icehrm.open"
|
||||
|
||||
end
|
||||
@@ -13,8 +13,9 @@ class RoboFile extends \Robo\Tasks
|
||||
{
|
||||
private function includeCientConfig($client){
|
||||
include dirname(__FILE__)."/../config.base.php";
|
||||
include ALL_CLIENT_BASE_PATH. $client . "/config.php";
|
||||
//include ALL_CLIENT_BASE_PATH. $client . "/config.php";
|
||||
|
||||
include (dirname(__FILE__)."/../../app/config.php");
|
||||
include (dirname(__FILE__)."/../include.common.php");
|
||||
|
||||
include(dirname(__FILE__)."/../server.includes.inc.php");
|
||||
|
||||
BIN
core/robo/robo.phar
Executable file → Normal file
BIN
core/robo/robo.phar
Executable file → Normal file
Binary file not shown.
209
core/scripts/icehrm_fixtures.sql
Normal file
209
core/scripts/icehrm_fixtures.sql
Normal file
@@ -0,0 +1,209 @@
|
||||
INSERT INTO `CompanyStructures` (`id`, `title`, `description`, `address`, `type`, `country`, `parent`) VALUES
|
||||
(4, 'Development Center', 'Development Center', 'PO Box 001002\nSample Road, Sample Town', 'Regional Office', 'SG', 1),
|
||||
(5, 'Engineering Department', 'Engineering Department', 'PO Box 001002\nSample Road, Sample Town, 341234', 'Department', 'SG', 4),
|
||||
(6, 'Development Team', 'Development Team', '', 'Unit', 'SG', 5),
|
||||
(7, 'QA Team', 'QA Team', '', 'Unit', 'SG', 5),
|
||||
(8, 'Server Administration', 'Server Administration', '', 'Unit', 'SG', 5),
|
||||
(9, 'Administration & HR', 'Administration and Human Resource', '', 'Department', 'SG', 4);
|
||||
|
||||
|
||||
REPLACE INTO Employees (id, employee_id, first_name, middle_name, last_name, nationality, birthday, gender, marital_status, ssn_num, nic_num, other_id, driving_license, driving_license_exp_date, employment_status, job_title, pay_grade, work_station_id, address1, address2, city, country, province, postal_code, home_phone, mobile_phone, work_phone, work_email, private_email, joined_date, confirmation_date, supervisor, indirect_supervisors, department, custom1, custom2, custom3, custom4, custom5, custom6, custom7, custom8, custom9, custom10, termination_date, notes, status, ethnicity, immigration_status, approver1, approver2, approver3) VALUES
|
||||
(2, 'EMP002', 'Lala', 'Nadila ', 'Lamees', 175, '1984-03-12', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', null, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+manager@web-stalk.com', 'icehrm+manager@web-stalk.com', '2011-03-07', '2012-02-14', 1, '[3,4]', 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, 5, 6, null),
|
||||
(3, 'EMP003', 'Sofia', '', 'O''Sullivan', 4, '1975-08-28', 'Female', 'Married', '', '768-20-4394', '768-20-4394', '', null, 3, 10, 2, '', '2792 Trails End Road', 'Fort Lauderdale', 'Fort Lauderdale', 'US', 12, '33308', '954-388-3340', '954-388-3340', '954-388-3340', 'icehrm+user1@web-stalk.com', 'icehrm+user1@web-stalk.com', '2010-02-08', null, 2, '[1,4]', 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, 5, null, null),
|
||||
(4, 'EMP004', 'Taylor', '', 'Holmes', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(5, 'EMP0.9649787330673809', 'Joseph', '', 'Frances', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(6, 'EMP0.24060630727615795', 'Carol', '', 'Linda', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(7, 'EMP0.19408038742288983', 'Walter', '', 'Deborah', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(8, 'EMP0.03006229552446147', 'Anna', '', 'Daniel', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(9, 'EMP0.16481477968843167', 'Richard', '', 'Susan', 10, '1979-07-15', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(10, 'EMP0.37350199406361395', 'Ronald', '', 'Carl', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(11, 'EMP0.43016207165099873', 'Carol', '', 'Kimberly', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(12, 'EMP0.3284134905118621', 'Christopher', '', 'Linda', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(13, 'EMP0.6587049045215406', 'Richard', '', 'Amy', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(14, 'EMP0.8292297160525152', 'Daniel', '', 'Eric', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(15, 'EMP0.5533464602691555', 'Stephanie', '', 'Jason', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(16, 'EMP0.8785160862640627', 'Ryan', '', 'Karen', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(17, 'EMP0.34093407200736375', 'Frances', '', 'Stephen', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(18, 'EMP0.5547930296089435', 'Joshua', '', 'William', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(19, 'EMP0.17822402266620102', 'Scott', '', 'Scott', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(20, 'EMP0.2785116120041456', 'Kimberly', '', 'Angela', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(21, 'EMP0.4688819464937616', 'Jeffrey', '', 'Jose', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(22, 'EMP0.9907437935385329', 'Helen', '', 'Deborah', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(23, 'EMP0.5996925259006141', 'Gary', '', 'Joshua', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(24, 'EMP0.22532124465827014', 'Harold', '', 'Andrew', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(25, 'EMP0.8340029714945731', 'Elizabeth', '', 'Joyce', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(26, 'EMP0.6365657119420969', 'Daniel', '', 'Lisa', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(27, 'EMP0.407178323163817', 'Brian', '', 'Raymond', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(28, 'EMP0.38699322881828363', 'Amanda', '', 'Harold', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(29, 'EMP0.9656451781891707', 'Dorothy', '', 'Barbara', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(30, 'EMP0.8027986751895385', 'Debra', '', 'Deborah', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(31, 'EMP0.1514758022050148', 'Karen', '', 'Carolyn', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(32, 'EMP0.4425015444331817', 'Rebecca', '', 'Michael', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(33, 'EMP0.3102784932686747', 'Donna', '', 'Debra', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null),
|
||||
(34, 'EMP0.8747393599476101', 'Patricia', '', 'Shirley', 10, '1979-07-15', 'Female', 'Single', '158-06-2292', '158-06-2292', '', '', null, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12', null, 2, null, 2, null, null, null, null, null, null, null, null, null, null, null, null, 'Active', null, null, null, null, null);
|
||||
|
||||
|
||||
|
||||
UPDATE `Employees` set supervisor = 2, indirect_supervisors = '[3,4]', approver1 = 5, approver2 = 6, approver3 = 7 where id = 1;
|
||||
UPDATE `Employees` set supervisor = 1, indirect_supervisors = '[3,4]', approver1 = 5, approver2 = 6 where id = 2;
|
||||
UPDATE `Employees` set supervisor = 2, indirect_supervisors = '[1,4]', approver1 = 5 where id = 3;
|
||||
|
||||
INSERT INTO `EmergencyContacts` (`id`, `employee`, `name`, `relationship`, `home_phone`, `work_phone`, `mobile_phone`) VALUES
|
||||
(1, 1, 'Emma Owns', 'Mother', '+874463422', '+874463422', '+874463422'),
|
||||
(2, 2, 'Casey Watson', 'Sister', '231-453-876', '231-453-876', '231-453-876');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeCertifications` (`id`, `certification_id`, `employee`, `institute`, `date_start`, `date_end`) VALUES
|
||||
(1, 21, 1, 'PHR', '2012-06-04', '2016-06-13'),
|
||||
(2, 19, 1, 'CPA', '2010-02-16', '2019-02-28'),
|
||||
(3, 17, 2, 'PMP', '2011-06-14', '2019-10-20'),
|
||||
(4, 3, 2, 'PMI', '2004-06-08', '2017-09-14');
|
||||
|
||||
INSERT INTO `EmployeeCompanyLoans` (`id`, `employee`, `loan`, `start_date`, `last_installment_date`, `period_months`, `amount`, `monthly_installment`, `status`, `details`) VALUES
|
||||
(1, 2, 2, '2013-02-05', '2016-02-05', 12, '12000.00', '1059.45', 'Approved', '');
|
||||
|
||||
INSERT INTO `EmployeeDependents` (`id`, `employee`, `name`, `relationship`, `dob`, `id_number`) VALUES
|
||||
(1, 1, 'Emma Owns', 'Parent', '1940-06-11', '475209UHB'),
|
||||
(2, 1, 'Mica Singroo', 'Other', '2000-06-13', '');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeEducations` (`id`, `education_id`, `employee`, `institute`, `date_start`, `date_end`) VALUES
|
||||
(1, 1, 1, 'National University of Turky', '2004-02-03', '2006-06-13'),
|
||||
(2, 1, 2, 'MIT', '1995-02-21', '1999-10-12');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeLanguages` (`id`, `language_id`, `employee`, `reading`, `speaking`, `writing`, `understanding`) VALUES
|
||||
(1, 1, 1, 'Full Professional Proficiency', 'Full Professional Proficiency', 'Full Professional Proficiency', 'Native or Bilingual Proficiency'),
|
||||
(2, 1, 2, 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency'),
|
||||
(3, 2, 2, 'Limited Working Proficiency', 'Professional Working Proficiency', 'Limited Working Proficiency', 'Professional Working Proficiency');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeProjects` (`id`, `employee`, `project`, `date_start`, `date_end`, `status`, `details`) VALUES
|
||||
(1, 2, 1, '2010-03-18', '2014-03-06', 'Inactive', ''),
|
||||
(3, 2, 2, '2013-02-05', '2013-02-11', 'Current', ''),
|
||||
(5, 2, 3, '2013-02-24', NULL, 'Current', '');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeSalary` (`employee`, `component`,`amount`, `details`) VALUES
|
||||
(1, 1,'50000.00', ''),
|
||||
(1, 2,'20000.00', ''),
|
||||
(1, 3,'30000.00', ''),
|
||||
(1, 4,'2000.00', ''),
|
||||
|
||||
(2, 1,'90500.00', ''),
|
||||
(2, 2,'40000.00', ''),
|
||||
(2, 3,'50000.00', ''),
|
||||
|
||||
(3, 1,'131409.00', ''),
|
||||
(3, 2,'143471.00', ''),
|
||||
(3, 3,'50000.00', ''),
|
||||
(3, 4,'30000.00', ''),
|
||||
|
||||
(4, 5,'1432.00', ''),
|
||||
(4, 6,'2100.00', ''),
|
||||
|
||||
(5, 5,'1200.00', ''),
|
||||
(5, 6,'1500.00', ''),
|
||||
(5, 7,'2000.00', ''),
|
||||
|
||||
(5, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(6, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(7, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(8, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(9, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(10, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(11, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(12, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(13, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), ''),
|
||||
(14, 1,round(rand() * 100000 + rand() * 20000 - rand() * 20000, 2), '');
|
||||
|
||||
INSERT INTO `EmployeeSkills` (`id`, `skill_id`, `employee`, `details`) VALUES
|
||||
(1, 9, 1, 'Creating web sites'),
|
||||
(2, 6, 2, 'Certified Business Intelligence Professional');
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO `LeaveRules` (`id`, `leave_type`, `job_title`, `employment_status`, `employee`, `supervisor_leave_assign`, `employee_can_apply`, `apply_beyond_current`, `leave_accrue`, `carried_forward`, `default_per_year`) VALUES
|
||||
(1, 1, 11, NULL, NULL, 'No', 'Yes', 'Yes', 'No', 'No', 25),
|
||||
(2, 2, NULL, NULL, 2, 'No', 'Yes', 'Yes', 'No', 'No', 10);
|
||||
|
||||
|
||||
|
||||
INSERT INTO `Users` (`id`, `username`, `email`, `password`, `employee`,`default_module`, `user_level`,`user_roles`, `last_login`, `last_update`, `created`) VALUES
|
||||
(2, 'manager', 'icehrm+manager@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 2,NULL, 'Manager','', '2013-01-03 02:47:37', '2013-01-03 02:47:37', '2013-01-03 02:47:37'),
|
||||
(3, 'user1', 'icehrm+user1@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 3,NULL, 'Employee','', '2013-01-03 02:48:32', '2013-01-03 02:48:32', '2013-01-03 02:48:32'),
|
||||
(4, 'user2', 'icehrm+user2@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 4,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(5, 'user3', 'icehrm+user3@web-stalk.com', '4048bb914a704a0728549a26b92d8550', NULL,NULL, 'Restricted Admin','["1"]', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(6, 'user4', 'icehrm+user4@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 5,NULL, 'Manager','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(7, 'user5', 'icehrm+user5@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 6,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(8, 'user6', 'icehrm+user6@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 7,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(9, 'user7', 'icehrm+user7@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 8,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(10, 'user8', 'icehrm+user8@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 9,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55'),
|
||||
(11, 'user9', 'icehrm+user9@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 10,NULL, 'Employee','', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55');
|
||||
|
||||
|
||||
INSERT INTO `EmployeeDocuments` (`id`,`employee`, `document`, `date_added`, `valid_until`, `status`, `details`, `attachment`, `expire_notification_last`) VALUES
|
||||
(1, 1, 1, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 30 DAY), 'Active', '', NULL, -1),
|
||||
(2, 1, 2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 7 DAY), 'Active', '', NULL, -1),
|
||||
(3, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 DAY), 'Active', '', NULL, -1);
|
||||
|
||||
|
||||
|
||||
INSERT INTO `Attendance` (`employee`,`in_time`,`out_time`,`note`) VALUES
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 21 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 21 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 20 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 20 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 19 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 19 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 18 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 18 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 17 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 17 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 16 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 16 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(1, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 15 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 15 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
|
||||
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(2, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
|
||||
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 30 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 29 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 28 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 27 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 26 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 25 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 24 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), '');
|
||||
|
||||
|
||||
INSERT INTO `Settings` (`name`, `value`, `description`, `category`, `meta`) VALUES
|
||||
('Instance : ID', '0847429146712c108e23c435e8f93b4d', 'Instance', '',''),
|
||||
('Instance: Key', 'UQHEYBx9H1eNR66nhNCNCz1WCDDhkjtx1OuJbO3ZQMt+8tfSGvuOH/YEHntRajY=', '', 'Instance','');
|
||||
|
||||
INSERT INTO `EmployeeTeams` (`id`,`name`, `description`, `lead`, `department`) VALUES
|
||||
(1,'alpha', 'designing team', 5,2),
|
||||
(2,'beta', 'marketing team', 4,3);
|
||||
|
||||
INSERT INTO `EmployeeTeamMembers` (`id`,`team`, `member`, `role`) VALUES
|
||||
(1,1, 3, '1'),
|
||||
(2,2,6, '2');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1350,6 +1350,7 @@ class BaseService
|
||||
$settings->name = "Instance: Key";
|
||||
}
|
||||
$settings->value = $key;
|
||||
$settings->category = 'Instance';
|
||||
$settings->Save();
|
||||
}
|
||||
|
||||
@@ -1376,11 +1377,17 @@ class BaseService
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
$data = AesCtr::decrypt($key, $instanceId, 256);
|
||||
$arr = explode("|", $data);
|
||||
if ($arr[0] == KEY_PREFIX && $arr[1] == $instanceId) {
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
if (strlen($key) > 20) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
5
deployment/vagrant/run-at-startup.sh
Executable file
5
deployment/vagrant/run-at-startup.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /vagrant
|
||||
sudo npm install
|
||||
cd web
|
||||
sudo npm install
|
||||
17
docker-compose-cypress.yaml
Normal file
17
docker-compose-cypress.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: "3.5"
|
||||
services:
|
||||
# Cypress container
|
||||
cypress:
|
||||
network_mode: host
|
||||
# the Docker image to use from https://github.com/cypress-io/cypress-docker-images
|
||||
image: "cypress/included:3.2.0"
|
||||
environment:
|
||||
# pass base url to test pointing at the web application
|
||||
- CYPRESS_baseUrl=http://icehrm:8090
|
||||
# share the current folder as volume to avoid copying
|
||||
working_dir: /e2e
|
||||
volumes:
|
||||
- ./test/frontend:/e2e
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
@@ -1,20 +1,22 @@
|
||||
version: "3.5"
|
||||
services:
|
||||
mysql:
|
||||
mysql-prod:
|
||||
image: mysql:5.7
|
||||
ports:
|
||||
- 3306:3306
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: IceHrmR00t
|
||||
MYSQL_USER: dev
|
||||
MYSQL_PASSWORD: dev
|
||||
MYSQL_DATABASE: dev
|
||||
MYSQL_USER: prod
|
||||
MYSQL_PASSWORD: prod
|
||||
MYSQL_DATABASE: icehrm
|
||||
volumes:
|
||||
- ./docker/prod/init.sql:/docker-entrypoint-initdb.d/setup.sql
|
||||
- ./docker/prod/db_data:/var/lib/mysql
|
||||
|
||||
icehrm:
|
||||
build: .
|
||||
icehrm-prod:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfile-prod
|
||||
ports:
|
||||
- 80:80
|
||||
volumes:
|
||||
|
||||
24
docker-compose-testing.yaml
Normal file
24
docker-compose-testing.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: "3.5"
|
||||
services:
|
||||
mysql-testing:
|
||||
image: mysql:5.7
|
||||
ports:
|
||||
- 3306:3306
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: IceHrmR00t
|
||||
MYSQL_USER: testing
|
||||
MYSQL_PASSWORD: testing
|
||||
MYSQL_DATABASE: icehrm
|
||||
volumes:
|
||||
- ./docker/testing/init.sql:/docker-entrypoint-initdb.d/setup.sql
|
||||
- ./docker/testing/db_data:/var/lib/mysql
|
||||
|
||||
icehrm-testing:
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfile-testing
|
||||
ports:
|
||||
- 8090:8090
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
@@ -8,7 +8,7 @@ services:
|
||||
MYSQL_ROOT_PASSWORD: IceHrmR00t
|
||||
MYSQL_USER: dev
|
||||
MYSQL_PASSWORD: dev
|
||||
MYSQL_DATABASE: dev
|
||||
MYSQL_DATABASE: icehrm
|
||||
volumes:
|
||||
- ./docker/development/init.sql:/docker-entrypoint-initdb.d/setup.sql
|
||||
- ./docker/development/db_data:/var/lib/mysql
|
||||
|
||||
@@ -7,7 +7,7 @@ define('CLIENT_BASE_PATH', '/var/www/html/app/');
|
||||
define('BASE_URL','http://localhost:8080/web/');
|
||||
define('CLIENT_BASE_URL','http://localhost:8080/app/');
|
||||
|
||||
define('APP_DB', 'dev');
|
||||
define('APP_DB', 'icehrm');
|
||||
define('APP_USERNAME', 'dev');
|
||||
define('APP_PASSWORD', 'dev');
|
||||
define('APP_HOST', 'mysql');
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use dev;
|
||||
use icehrm;
|
||||
|
||||
create table `CompanyStructures` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
@@ -2957,5 +2957,7 @@ REPLACE INTO `UserReports` (`name`, `details`, `parameters`, `query`, `paramOrde
|
||||
'PayslipReport', '["payroll"]', 'Class','Finance','PDF');
|
||||
|
||||
|
||||
|
||||
INSERT INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||
('Instance : ID', '0847429146712c108e23c435e8f93b4d', '',''),
|
||||
('Instance: Key', 'UQHEYBx9H1eNR66nhNCNCz1WCDDhkjtx1OuJbO3ZQMt+8tfSGvuOH/YEHntRajY=', '','');
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@ ini_set('error_log', 'data/icehrm.log');
|
||||
define('CLIENT_NAME', 'icehrm');
|
||||
define('APP_BASE_PATH', '/var/www/html/core/');
|
||||
define('CLIENT_BASE_PATH', '/var/www/html/app/');
|
||||
define('BASE_URL','http://localhost:8080/web/');
|
||||
define('CLIENT_BASE_URL','http://localhost:8080/app/');
|
||||
define('BASE_URL','http://localhost/web/');
|
||||
define('CLIENT_BASE_URL','http://localhost/app/');
|
||||
|
||||
define('APP_DB', 'dev');
|
||||
define('APP_USERNAME', 'dev');
|
||||
define('APP_PASSWORD', 'dev');
|
||||
define('APP_HOST', 'mysql');
|
||||
define('APP_DB', 'icehrm');
|
||||
define('APP_USERNAME', 'prod');
|
||||
define('APP_PASSWORD', 'prod');
|
||||
define('APP_HOST', 'mysql-prod');
|
||||
define('APP_CON_STR', 'mysqli://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_DB);
|
||||
|
||||
//file upload
|
||||
|
||||
@@ -30,8 +30,8 @@ http {
|
||||
|
||||
# Default server definition
|
||||
server {
|
||||
listen [::]:8080 default_server;
|
||||
listen 8080 default_server;
|
||||
listen [::]:80 default_server;
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
sendfile off;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use dev;
|
||||
use icehrm;
|
||||
|
||||
create table `CompanyStructures` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
|
||||
18
docker/testing/config/config.php
Normal file
18
docker/testing/config/config.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
ini_set('error_log', 'data/icehrm.log');
|
||||
|
||||
define('CLIENT_NAME', 'icehrm');
|
||||
define('APP_BASE_PATH', '/var/www/html/core/');
|
||||
define('CLIENT_BASE_PATH', '/var/www/html/app/');
|
||||
define('BASE_URL','http://icehrm:8090/web/');
|
||||
define('CLIENT_BASE_URL','http://icehrm:8090/app/');
|
||||
|
||||
define('APP_DB', 'icehrm');
|
||||
define('APP_USERNAME', 'testing');
|
||||
define('APP_PASSWORD', 'testing');
|
||||
define('APP_HOST', 'mysql-testing');
|
||||
define('APP_CON_STR', 'mysqli://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_DB);
|
||||
|
||||
//file upload
|
||||
define('FILE_TYPES', 'jpg,png,jpeg');
|
||||
define('MAX_FILE_SIZE_KB', 10 * 1024);
|
||||
56
docker/testing/config/fpm-pool.conf
Normal file
56
docker/testing/config/fpm-pool.conf
Normal file
@@ -0,0 +1,56 @@
|
||||
[global]
|
||||
; Log to stderr
|
||||
error_log = /dev/stderr
|
||||
|
||||
[www]
|
||||
; The address on which to accept FastCGI requests.
|
||||
; Valid syntaxes are:
|
||||
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
|
||||
; a specific port;
|
||||
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
|
||||
; a specific port;
|
||||
; 'port' - to listen on a TCP socket to all addresses
|
||||
; (IPv6 and IPv4-mapped) on a specific port;
|
||||
; '/path/to/unix/socket' - to listen on a unix socket.
|
||||
; Note: This value is mandatory.
|
||||
listen = 127.0.0.1:9000
|
||||
|
||||
; Enable status page
|
||||
pm.status_path = /fpm-status
|
||||
|
||||
; Ondemand process manager
|
||||
pm = ondemand
|
||||
|
||||
; The number of child processes to be created when pm is set to 'static' and the
|
||||
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
|
||||
; This value sets the limit on the number of simultaneous requests that will be
|
||||
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
|
||||
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
|
||||
; CGI. The below defaults are based on a server without much resources. Don't
|
||||
; forget to tweak pm.* to fit your needs.
|
||||
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
|
||||
; Note: This value is mandatory.
|
||||
pm.max_children = 100
|
||||
|
||||
; The number of seconds after which an idle process will be killed.
|
||||
; Note: Used only when pm is set to 'ondemand'
|
||||
; Default Value: 10s
|
||||
pm.process_idle_timeout = 10s;
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries. For
|
||||
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default Value: 0
|
||||
pm.max_requests = 1000
|
||||
|
||||
; Make sure the FPM workers can reach the environment variables for configuration
|
||||
clear_env = no
|
||||
|
||||
; Catch output from PHP
|
||||
catch_workers_output = yes
|
||||
|
||||
; Remove the 'child 10 said into stderr' prefix in the log and only show the actual message
|
||||
decorate_workers_output = no
|
||||
|
||||
; Enable ping page to use in healthcheck
|
||||
ping.path = /fpm-ping
|
||||
86
docker/testing/config/nginx.conf
Normal file
86
docker/testing/config/nginx.conf
Normal file
@@ -0,0 +1,86 @@
|
||||
worker_processes 1;
|
||||
error_log stderr warn;
|
||||
pid /run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Define custom log format to include reponse times
|
||||
log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for" '
|
||||
'$request_time $upstream_response_time $pipe $upstream_cache_status';
|
||||
|
||||
access_log /dev/stdout main_timed;
|
||||
error_log /dev/stderr notice;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
# Write temporary files to /tmp so they can be created as a non-privileged user
|
||||
client_body_temp_path /tmp/client_temp;
|
||||
proxy_temp_path /tmp/proxy_temp_path;
|
||||
fastcgi_temp_path /tmp/fastcgi_temp;
|
||||
uwsgi_temp_path /tmp/uwsgi_temp;
|
||||
scgi_temp_path /tmp/scgi_temp;
|
||||
|
||||
# Default server definition
|
||||
server {
|
||||
listen [::]:8090 default_server;
|
||||
listen 8090 default_server;
|
||||
server_name _;
|
||||
|
||||
sendfile off;
|
||||
|
||||
root /var/www/html;
|
||||
index index.php;
|
||||
|
||||
location /app/api/ {
|
||||
try_files $uri /app/api/index.php?/$uri&$args;
|
||||
}
|
||||
|
||||
# Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
|
||||
expires 5d;
|
||||
}
|
||||
|
||||
# Deny access to . files, for security
|
||||
location ~ /\. {
|
||||
log_not_found off;
|
||||
deny all;
|
||||
}
|
||||
|
||||
# Allow fpm ping and status from localhost
|
||||
location ~ ^/(fpm-status|fpm-ping)$ {
|
||||
access_log off;
|
||||
allow 127.0.0.1;
|
||||
deny all;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
}
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_proxied any;
|
||||
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
|
||||
gzip_vary on;
|
||||
gzip_disable "msie6";
|
||||
|
||||
# Include other server configs
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
}
|
||||
3
docker/testing/config/php.ini
Normal file
3
docker/testing/config/php.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
[Date]
|
||||
date.timezone="UTC"
|
||||
|
||||
4
docker/testing/config/reset-db.php
Normal file
4
docker/testing/config/reset-db.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$output = shell_exec('cd /var/www/html/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test');
|
||||
echo "<pre>$output</pre>";
|
||||
23
docker/testing/config/supervisord.conf
Normal file
23
docker/testing/config/supervisord.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
logfile=/dev/null
|
||||
logfile_maxbytes=0
|
||||
pidfile=/run/supervisord.pid
|
||||
|
||||
[program:php-fpm]
|
||||
command=php-fpm7 -F
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
autorestart=false
|
||||
startretries=0
|
||||
|
||||
[program:nginx]
|
||||
command=nginx -g 'daemon off;'
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
autorestart=false
|
||||
startretries=0
|
||||
2963
docker/testing/init.sql
Normal file
2963
docker/testing/init.sql
Normal file
File diff suppressed because it is too large
Load Diff
12
readme.md
12
readme.md
@@ -106,5 +106,17 @@ Preparing development VM with Vagrant
|
||||
```
|
||||
|
||||
|
||||
### Docker Setup
|
||||
|
||||
docker run -it -v $PWD:/e2e -w /e2e cypress/included:3.2.0
|
||||
|
||||
vagrant ssh -c 'cd /vagrant/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test'
|
||||
|
||||
docker-compose up --build
|
||||
|
||||
docker-compose -f docker-compose-testing.yaml up
|
||||
|
||||
|
||||
docker-compose -f docker-compose-testing.yaml up --exit-code-from cypress
|
||||
|
||||
|
||||
|
||||
@@ -20,9 +20,14 @@ class IceCypressTest {
|
||||
cy.server().route('GET', `/${config.URL_PREFIX}/service.php*`).as('getElement');
|
||||
cy.get(`#${this.element} table tbody`).find('tr').first()
|
||||
.find(viewButtonSelector || `.center div img[${this.titleDataAttributeName}='View']`)
|
||||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
cy.wait('@getElement').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@getElement').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
viewElementValidate(cy, validation = []) {
|
||||
@@ -34,9 +39,14 @@ class IceCypressTest {
|
||||
editElement(cy, update, editButtonSelector = null) {
|
||||
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getElement');
|
||||
cy.get(`#${this.element} table tbody`).find('tr').first().find(editButtonSelector || `.center div img[${this.titleDataAttributeName}='Edit']`)
|
||||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
cy.wait('@getElement').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@getElement').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
|
||||
update.forEach((item) => {
|
||||
cy.get(item[0]).clear().type(item[1]).should('have.value', item[1]);
|
||||
@@ -44,14 +54,15 @@ class IceCypressTest {
|
||||
}
|
||||
|
||||
select2Click(id, value) {
|
||||
cy.get(`#s2id_${id}`).click();
|
||||
cy.get(`#s2id_${id}`).should("be.visible").click();
|
||||
cy.focused().clear().type(value).should('have.value', value);
|
||||
cy.get('.select2-drop:visible').find('.select2-results li').first()
|
||||
.should("be.visible")
|
||||
.click();
|
||||
}
|
||||
|
||||
clickSave(cy) {
|
||||
cy.get(`#${this.element}Form .saveBtn`).click();
|
||||
cy.get(`#${this.element}Form .saveBtn`).should("be.visible").click();
|
||||
}
|
||||
|
||||
editElementValidate(cy, validation = [], editButtonSelector) {
|
||||
@@ -62,14 +73,23 @@ class IceCypressTest {
|
||||
}
|
||||
|
||||
// Wait for data table response
|
||||
cy.wait('@getAfterSave').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@getAfterSave').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
|
||||
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getElementAfterSave');
|
||||
// Click on edit and wait
|
||||
cy.get(`#${this.element} table tbody`).find('tr').first().find(editButtonSelector || `.center div img[${this.titleDataAttributeName}='Edit']`)
|
||||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
cy.wait('@getElementAfterSave').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@getElementAfterSave').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
|
||||
validation.forEach((item) => {
|
||||
cy.get(item[0]).then(element => expect(element.val()).eq(item[1]));
|
||||
@@ -95,7 +115,11 @@ class IceCypressTest {
|
||||
cy.visit(`${config.BASE_URL}?${this.moduleUrl}`);
|
||||
|
||||
// Wait for data table response
|
||||
cy.wait('@get').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@get').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
switchTab(cy, tabName = null) {
|
||||
@@ -104,8 +128,12 @@ class IceCypressTest {
|
||||
} else {
|
||||
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getTab');
|
||||
}
|
||||
cy.get(tabName || `#tab${this.element}`).click();
|
||||
cy.wait('@getTab').its('status').should('be', config.DEFAULT_WAIT_TIME);
|
||||
cy.get(tabName || `#tab${this.element}`).should("be.visible").click();
|
||||
if (config.WAIT_ON_TIME) {
|
||||
cy.wait(config.WAIT_TIME);
|
||||
} else {
|
||||
cy.wait('@getTab').its('status').should('be', config.DEFAULT_STATUS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,13 @@ const config = require('./config');
|
||||
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
||||
|
||||
Cypress.Commands.add('login', (user, password) => {
|
||||
cy.visit(`${config.BASE_URL}login.php`);
|
||||
cy.visit(`${config.BASE_URL}logout.php`);
|
||||
cy.get('#username').type(user).should('have.value', user);
|
||||
cy.get('#password').type(password).should('have.value', password);
|
||||
cy.get('.btn').first().click();
|
||||
});
|
||||
|
||||
Cypress.Commands.add('resetDatabase', () => {
|
||||
cy.exec('vagrant ssh -c \'cd /vagrant/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test\'');
|
||||
cy.visit(`${config.BASE_URL}reset-db.php`);
|
||||
//cy.exec('vagrant ssh -c \'cd /vagrant/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test\'');
|
||||
});
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
const BASE_URL = 'http://clients.icehrmpro.test/test/';
|
||||
const BASE_URL = 'http://icehrm:8090/app/';
|
||||
//const BASE_URL = 'http://clients.icehrmpro.test/test/';
|
||||
|
||||
const DEFAULT_MAX_PAGE_SIZE = 15;
|
||||
const DEFAULT_WAIT_TIME = 500;
|
||||
const DEFAULT_STATUS = 200;
|
||||
const DEFAULT_USER_PASS = 'demouserpwd';
|
||||
const URL_PREFIX = 'test';
|
||||
const URL_PREFIX = 'app';
|
||||
const WAIT_ON_TIME = true;
|
||||
const WAIT_TIME = 500;
|
||||
|
||||
module.exports = {
|
||||
BASE_URL,
|
||||
DEFAULT_MAX_PAGE_SIZE,
|
||||
DEFAULT_WAIT_TIME,
|
||||
DEFAULT_STATUS,
|
||||
DEFAULT_USER_PASS,
|
||||
URL_PREFIX,
|
||||
WAIT_ON_TIME,
|
||||
WAIT_TIME,
|
||||
};
|
||||
|
||||
@@ -18,3 +18,9 @@ import './commands';
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
||||
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// returning false here prevents Cypress from
|
||||
// failing the test
|
||||
return false
|
||||
});
|
||||
|
||||
120
test/frontend/package-lock.json
generated
120
test/frontend/package-lock.json
generated
@@ -47,13 +47,19 @@
|
||||
"lodash.once": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"@types/sizzle": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
|
||||
"integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
|
||||
"dev": true
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||
"version": "6.12.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
|
||||
"integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
@@ -120,9 +126,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
|
||||
"integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==",
|
||||
"dev": true
|
||||
},
|
||||
"balanced-match": {
|
||||
@@ -328,13 +334,14 @@
|
||||
}
|
||||
},
|
||||
"cypress": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-3.4.1.tgz",
|
||||
"integrity": "sha512-1HBS7t9XXzkt6QHbwfirWYty8vzxNMawGj1yI+Fu6C3/VZJ8UtUngMW6layqwYZzLTZV8tiDpdCNBypn78V4Dg==",
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-3.8.3.tgz",
|
||||
"integrity": "sha512-I9L/d+ilTPPA4vq3NC1OPKmw7jJIpMKNdyfR8t1EXYzYCjyqbc59migOm1YSse/VRbISLJ+QGb5k4Y3bz2lkYw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@cypress/listr-verbose-renderer": "0.4.1",
|
||||
"@cypress/xvfb": "1.2.4",
|
||||
"@types/sizzle": "2.3.2",
|
||||
"arch": "2.1.1",
|
||||
"bluebird": "3.5.0",
|
||||
"cachedir": "1.3.0",
|
||||
@@ -343,6 +350,7 @@
|
||||
"commander": "2.15.1",
|
||||
"common-tags": "1.8.0",
|
||||
"debug": "3.2.6",
|
||||
"eventemitter2": "4.1.2",
|
||||
"execa": "0.10.0",
|
||||
"executable": "4.1.1",
|
||||
"extract-zip": "1.6.7",
|
||||
@@ -361,6 +369,7 @@
|
||||
"request-progress": "3.0.0",
|
||||
"supports-color": "5.5.0",
|
||||
"tmp": "0.1.0",
|
||||
"untildify": "3.0.3",
|
||||
"url": "0.11.0",
|
||||
"yauzl": "2.10.0"
|
||||
}
|
||||
@@ -477,6 +486,12 @@
|
||||
"object.entries": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"eventemitter2": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz",
|
||||
"integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=",
|
||||
"dev": true
|
||||
},
|
||||
"execa": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
|
||||
@@ -558,15 +573,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
|
||||
"integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"dev": true
|
||||
},
|
||||
"fd-slicer": {
|
||||
@@ -653,9 +668,9 @@
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
@@ -676,9 +691,9 @@
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
|
||||
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
||||
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
|
||||
"dev": true
|
||||
},
|
||||
"har-schema": {
|
||||
@@ -791,13 +806,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"is-finite": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
|
||||
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
|
||||
"integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
@@ -828,9 +840,9 @@
|
||||
}
|
||||
},
|
||||
"is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
||||
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
@@ -1109,18 +1121,18 @@
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
|
||||
"version": "1.44.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
|
||||
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.24",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
||||
"version": "2.1.27",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
|
||||
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.40.0"
|
||||
"mime-db": "1.44.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
@@ -1345,9 +1357,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
|
||||
"integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"punycode": {
|
||||
@@ -1375,9 +1387,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
|
||||
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
@@ -1497,9 +1509,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
|
||||
"dev": true
|
||||
},
|
||||
"slice-ansi": {
|
||||
@@ -1661,6 +1673,12 @@
|
||||
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
|
||||
"dev": true
|
||||
},
|
||||
"untildify": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
|
||||
"integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==",
|
||||
"dev": true
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
@@ -1695,9 +1713,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"dev": true
|
||||
},
|
||||
"verror": {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"cypress": "^3.4.1",
|
||||
"cypress": "^3.8.3",
|
||||
"eslint-config-airbnb": "^18.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user