Add missing javascript dependencies to package.json. Move javascripts files to app/javascript. Add first javascript test. Change test mode

pull/1/head
rebuilt 4 years ago
parent 414eb83f6d
commit 7ba020d04d

@ -1,15 +0,0 @@
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require bootstrap
//= require turbolinks
//= require_tree .

@ -1,12 +0,0 @@
document.addEventListener("turbolinks:load", function() {
const schoolDropdown = document.querySelector('#select-school');
if (schoolDropdown) {
document.querySelector('#select-school').addEventListener('change', (event) => {
window.location = event.target.value;
});
document.querySelector('#select-district').addEventListener('change', (event) => {
window.location = event.target.value;
});
}
});

@ -1,7 +0,0 @@
export default class Jester {
constructor(){}
hello(){
return "Hello"
}
}

@ -1 +1,15 @@
// Entry point for the build script in your package.json // Entry point for the build script in your package.json
import Rails from "@rails/ujs";
import Turbolinks from "turbolinks";
import * as ActiveStorage from "@rails/activestorage";
// import "channels";
Rails.start();
Turbolinks.start();
ActiveStorage.start();
import { initializeListenersForNavDropdowns } from "./dashboard.js";
import { initializeListenersForHomeDropdowns } from "./home.js";
initializeListenersForNavDropdowns();
initializeListenersForHomeDropdowns();

@ -0,0 +1,14 @@
export function initializeListenersForNavDropdowns(){
document.addEventListener("turbolinks:load", function() {
const schoolDropdown = document.querySelector('#select-school');
if (schoolDropdown) {
document.querySelector('#select-school').addEventListener('change', (event) => {
window.location = event.target.value;
});
document.querySelector('#select-district').addEventListener('change', (event) => {
window.location = event.target.value;
});
}
});
}

@ -1,4 +1,5 @@
document.addEventListener('DOMContentLoaded', () => { export function initializeListenersForHomeDropdowns(){
document.addEventListener('turbolinks:load', () => {
const districtDropdown = document.querySelector('#district-dropdown'); const districtDropdown = document.querySelector('#district-dropdown');
if (districtDropdown) { if (districtDropdown) {
districtDropdown.addEventListener('change', event => { districtDropdown.addEventListener('change', event => {
@ -23,3 +24,5 @@ document.addEventListener('DOMContentLoaded', () => {
}); });
} }
}); });
return true;
}

@ -4,22 +4,26 @@
"dependencies": { "dependencies": {
"@babel/preset-env": "^7.15.8", "@babel/preset-env": "^7.15.8",
"babel-preset-es2015": "^6.24.1", "babel-preset-es2015": "^6.24.1",
"esbuild": "^0.13.6" "esbuild": "^0.13.6",
"@rails/actioncable": "^6.0.0",
"@rails/activestorage": "^6.0.0",
"@rails/ujs": "^6.0.0",
"turbolinks": "^5.2.0"
}, },
"scripts": { "scripts": {
"build": "esbuild app/javascript/*.* --bundle --outdir=app/assets/builds", "build": "esbuild app/javascript/*.* --bundle --outdir=app/assets/builds",
"test": "jest" "test": "jest --env=jsdom"
}, },
"devDependencies": { "devDependencies": {
"jest": "^27.2.5" "jest": "^27.2.5"
}, },
"jest": { "jest": {
"roots": [ "roots": [
"./spec/javascript" "./spec/javascript"
], ],
"moduleDirectories": [ "moduleDirectories": [
"node_modules", "node_modules",
"app/assets/javascripts" "app/javascript"
] ]
} }
} }

@ -1,12 +0,0 @@
import Jester from "jester"
describe('this test should pass', () => {
test('very first test', () => {
expect(true).toBe(true)
})
test('Jester.hello returns greeting', () =>{
const jester = new Jester()
expect(jester.hello()).toBe("Hello")
})
})

@ -0,0 +1,12 @@
import {initializeListenersForHomeDropdowns } from "home"
it("returns true when called", () =>{
document.body.innerHTML =
'<div>' +
' <select id="school-dropdown"></select>' +
' <select id="district-dropdown"></select>' +
'</div>';
expect(initializeListenersForHomeDropdowns()).toBe(true)
})

@ -1079,6 +1079,23 @@
"@types/yargs" "^16.0.0" "@types/yargs" "^16.0.0"
chalk "^4.0.0" chalk "^4.0.0"
"@rails/actioncable@^6.0.0":
version "6.1.4"
resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.4.tgz#c3c5a9f8302c429af9722b6c50ab48049016d2a3"
integrity sha512-0LmSKJTuo2dL6BQ+9xxLnS9lbkyfz2mBGeBnQ2J7o9Bn0l0q+ZC6VuoZMZZXPvABI4QT7Nfknv5WhfKYL+boew==
"@rails/activestorage@^6.0.0":
version "6.1.4"
resolved "https://registry.yarnpkg.com/@rails/activestorage/-/activestorage-6.1.4.tgz#7772f539cc846df5f4364fc57ccb48860f9e966e"
integrity sha512-1Tm8uaVBhLTDEG4YaFPvqguhjbUGSPVItm0CfkRpIFZIkybWzFAxatIrk4YVOOxB8ZdXS7GdeYa1qVwjdiDkgQ==
dependencies:
spark-md5 "^3.0.0"
"@rails/ujs@^6.0.0":
version "6.1.4"
resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10"
integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw==
"@sinonjs/commons@^1.7.0": "@sinonjs/commons@^1.7.0":
version "1.8.3" version "1.8.3"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@ -3531,6 +3548,11 @@ source-map@^0.7.3:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
spark-md5@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc"
integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==
sprintf-js@~1.0.2: sprintf-js@~1.0.2:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@ -3683,6 +3705,11 @@ tr46@^2.1.0:
dependencies: dependencies:
punycode "^2.1.1" punycode "^2.1.1"
turbolinks@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/turbolinks/-/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c"
integrity sha512-pMiez3tyBo6uRHFNNZoYMmrES/IaGgMhQQM+VFF36keryjb5ms0XkVpmKHkfW/4Vy96qiGW3K9bz0tF5sK9bBw==
type-check@~0.3.2: type-check@~0.3.2:
version "0.3.2" version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"

Loading…
Cancel
Save