Skip to content

Commit 50fcaac

Browse files
committed
saving my work
1 parent 595c436 commit 50fcaac

5 files changed

Lines changed: 100 additions & 21 deletions

File tree

__mocks__/solid-auth-client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export default {
2-
currentSession: function() {
2+
currentSession: function () {
33
return Promise.resolve('http://w.e/b#id')
44
}
5-
}
5+
}

jest.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module.exports = {
22
verbose: true,
3-
prettierPath: 'prettier'
3+
prettierPath: 'prettier',
4+
coveragePathIgnorePatterns: ['src/test/*.js']
45
}

src/widgets/dragAndDrop.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ module.exports = {
1010
}
1111
// const UI = require('../index.js') // this package
1212

13-
function makeDropTarget (ele, droppedURIHandler, droppedFileHandler) {
14-
var dragoverListener = function (e) {
13+
function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
14+
var dragoverListener = function(e) {
1515
e.preventDefault() // Neeed else drop does not work [sic]
16+
console.log(e)
1617
e.dataTransfer.dropEffect = 'copy'
1718
}
1819

19-
var dragenterListener = function (e) {
20+
var dragenterListener = function(e) {
2021
console.log('dragenter event dropEffect: ' + e.dataTransfer.dropEffect)
2122
if (this.style) {
2223
// necessary not sure when
@@ -34,7 +35,7 @@ function makeDropTarget (ele, droppedURIHandler, droppedFileHandler) {
3435
e.dataTransfer.dropEffect = 'link'
3536
console.log('dragenter event dropEffect 2: ' + e.dataTransfer.dropEffect)
3637
}
37-
var dragleaveListener = function (e) {
38+
var dragleaveListener = function(e) {
3839
console.log('dragleave event dropEffect: ' + e.dataTransfer.dropEffect)
3940
if (this.savedStyle) {
4041
this.style.border = this.savedStyle.border
@@ -46,7 +47,7 @@ function makeDropTarget (ele, droppedURIHandler, droppedFileHandler) {
4647
}
4748
}
4849

49-
var dropListener = function (e) {
50+
var dropListener = function(e) {
5051
if (e.preventDefault) e.preventDefault() // stops the browser from redirecting off to the text.
5152
console.log('Drop event. dropEffect: ' + e.dataTransfer.dropEffect)
5253
console.log(
@@ -101,7 +102,7 @@ function makeDropTarget (ele, droppedURIHandler, droppedFileHandler) {
101102
return false
102103
} // dropListener
103104

104-
var addTargetListeners = function (ele) {
105+
var addTargetListeners = function(ele) {
105106
if (!ele) {
106107
console.log('@@@ addTargetListeners: ele ' + ele)
107108
}
@@ -117,12 +118,12 @@ function makeDropTarget (ele, droppedURIHandler, droppedFileHandler) {
117118
//
118119
// Possibly later set the drag image too?
119120
//
120-
function makeDraggable (tr, obj) {
121+
function makeDraggable(tr, obj) {
121122
tr.setAttribute('draggable', 'true') // Stop the image being dragged instead - just the TR
122123

123124
tr.addEventListener(
124125
'dragstart',
125-
function (e) {
126+
function(e) {
126127
tr.style.fontWeight = 'bold'
127128
e.dataTransfer.setData('text/uri-list', obj.uri)
128129
e.dataTransfer.setData('text/plain', obj.uri)
@@ -136,7 +137,7 @@ function makeDraggable (tr, obj) {
136137

137138
tr.addEventListener(
138139
'drag',
139-
function (e) {
140+
function(e) {
140141
e.preventDefault()
141142
e.stopPropagation()
142143
// console.log('Drag: dropEffect: ' + e.dataTransfer.dropEffect)
@@ -146,7 +147,7 @@ function makeDraggable (tr, obj) {
146147

147148
tr.addEventListener(
148149
'dragend',
149-
function (e) {
150+
function(e) {
150151
tr.style.fontWeight = 'normal'
151152
console.log('Dragend dropeffect: ' + e.dataTransfer.dropEffect)
152153
console.log('Dragend: ' + tr + ' -> ' + obj)
@@ -167,7 +168,7 @@ function makeDraggable (tr, obj) {
167168
** successHandler(file, uploadedURI) Called after each success upload
168169
** With file object an final URI as params
169170
*/
170-
function uploadFiles (fetcher, files, fileBase, imageBase, successHandler) {
171+
function uploadFiles(fetcher, files, fileBase, imageBase, successHandler) {
171172
for (var i = 0; files[i]; i++) {
172173
const f = files[i]
173174
console.log(
@@ -183,8 +184,8 @@ function uploadFiles (fetcher, files, fileBase, imageBase, successHandler) {
183184

184185
// @@ Add: progress bar(s)
185186
var reader = new FileReader()
186-
reader.onload = (function (theFile) {
187-
return function (e) {
187+
reader.onload = (function(theFile) {
188+
return function(e) {
188189
var data = e.target.result
189190
var suffix = ''
190191
console.log(' File read byteLength : ' + data.byteLength)
@@ -222,11 +223,11 @@ function uploadFiles (fetcher, files, fileBase, imageBase, successHandler) {
222223
contentType: contentType
223224
})
224225
.then(
225-
_response => {
226+
(_response) => {
226227
console.log(' Upload: put OK: ' + destURI)
227228
successHandler(theFile, destURI)
228229
},
229-
error => {
230+
(error) => {
230231
const msg = ' Upload: FAIL ' + destURI + ', Error: ' + error
231232
console.log(msg)
232233
alert(msg)

test/unit/widgets/dragAndDrop.test.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import * as RdfLib from 'rdflib'
22
import { JSDOM } from 'jsdom'
33

4-
import { makeDropTarget, makeDraggable, uploadFiles } from '../../../src/widgets/dragAndDrop'
4+
import {
5+
makeDropTarget,
6+
makeDraggable,
7+
uploadFiles
8+
} from '../../../src/widgets/dragAndDrop'
59
jest.mock('rdflib')
610
jest.mock('solid-auth-client')
711
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>').window.document
@@ -15,6 +19,23 @@ describe('makeDropTarget', () => {
1519
const handler = () => {}
1620
expect(makeDropTarget(element, handler, handler)).toEqual(undefined)
1721
})
22+
it('returns undefined when given an element ', () => {
23+
const element = document.createElement('textarea')
24+
const handler = () => {}
25+
makeDropTarget(element, handler, handler)
26+
const event = document.createEvent('HTMLEvents')
27+
console.log(event)
28+
event.initEvent('dragover', true, true)
29+
// event.dataTransfer = () => {}
30+
// element.dispatchEvent(event)
31+
expect(element.dispatchEvent(event)).toReturn()
32+
debugger
33+
// const event = new window.DragEvent
34+
// window.dispatchEvent(event)
35+
expect(makeDropTarget(element, handler, handler)).toMatchInlineSnapshot(
36+
`undefined`
37+
)
38+
})
1839
})
1940

2041
describe('makeDraggable', () => {
@@ -37,6 +58,8 @@ describe('uploadFiles', () => {
3758
const fileBase = ''
3859
const imageBase = ''
3960
const successHandler = () => {}
40-
expect(uploadFiles(RdfLib.fetcher, files, fileBase, imageBase, successHandler)).toEqual(undefined)
61+
expect(
62+
uploadFiles(RdfLib.fetcher, files, fileBase, imageBase, successHandler)
63+
).toEqual(undefined)
4164
})
4265
})

test/unit/widgets/peoplePicker.test.ts

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,24 @@ import {
77
Group,
88
GroupBuilder
99
} from '../../../src/widgets/peoplePicker'
10+
import { resolve } from 'dns'
11+
import { SolidAuth } from 'solid-auth-client'
1012
jest.mock('rdflib')
1113
jest.mock('solid-auth-client')
14+
const kb = require('../../../src/store')
1215
// jest.mock('../../../src/store')
1316

1417
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>').window.document
1518
const element = dom.createElement('div')
1619

20+
async function getMyWebId(): Promise<string | null> {
21+
const currentSession = await SolidAuth.currentSession()
22+
if (!currentSession) {
23+
return null
24+
}
25+
return currentSession.webId
26+
}
27+
1728
describe('PeoplePicker', () => {
1829
it('exists', () => {
1930
expect(new PeoplePicker()).toBeInstanceOf(PeoplePicker)
@@ -35,7 +46,6 @@ describe('PeoplePicker.render', () => {
3546
groupPickedCb,
3647
options
3748
)
38-
peoplePicker.render()
3949
expect(peoplePicker.render()).toMatchInlineSnapshot(`
4050
PeoplePicker {
4151
"element": <p>
@@ -53,6 +63,50 @@ describe('PeoplePicker.render', () => {
5363
}
5464
`)
5565
})
66+
// @@ TODO can't seem to get the findAddressBook to return anything even
67+
// when giving a typeIndex. I am certain the typeIndex would be incorrect however
68+
// I'm not sure of the correct one
69+
// I also added getMyWebId to attempt to login this was just scrambling though
70+
// not sure if this is what I should be doing
71+
it.skip('.. type index ...', () => {
72+
const webId = getMyWebId()
73+
74+
const typeIndex = 'publicTypeIndex'
75+
const groupPickedCb = () => {}
76+
const options = { selectedGroup: false }
77+
const element = document.createElement('p')
78+
const peoplePicker = new PeoplePicker(
79+
element,
80+
typeIndex,
81+
groupPickedCb,
82+
options
83+
)
84+
const spyAny = jest.spyOn(kb, 'any').mockImplementation(() => {
85+
return resolve('book', () => {
86+
return 'error'
87+
})
88+
})
89+
// const spyLoad = jest.spyOn(kb, 'fetcher.load').mockResolvedValue('book')
90+
expect(peoplePicker.render()).toMatchInlineSnapshot(`
91+
PeoplePicker {
92+
"element": <p>
93+
<div
94+
style="max-width: 350px; min-height: 200px; outline: 1px solid black; display: flex;"
95+
/>
96+
</p>,
97+
"groupPickedCb": [Function],
98+
"onSelectGroup": [Function],
99+
"options": Object {
100+
"selectedGroup": false,
101+
},
102+
"selectedgroup": undefined,
103+
"typeIndex": "publicTypeIndex",
104+
}
105+
`)
106+
expect(spyAny).toBeCalled()
107+
// expect(spyLoad).toBeCalled()
108+
})
109+
56110
it('create Element is called .. ', () => {
57111
const spy = jest.spyOn(document, 'createElement')
58112
const typeIndex = {}

0 commit comments

Comments
 (0)